陳俊良臺灣大學:資訊工程學研究所劉家瑋Liu, Chia-WeiChia-WeiLiu2007-11-262018-07-052007-11-262018-07-052004http://ntur.lib.ntu.edu.tw//handle/246246/54062Java技術在數值運算上的改良已經被廣泛的討論,大致可區分為兩個類別: Michael Philippsen and Edwin Ghnthner和Brian Blout and Siddhartha Chatterjee等人進行的計畫著重在利用新的Java 編譯器,或者更改Java語言來達到增進效能。 Peng Wu, Sam Midkiff, Jose Moreira and Manish Gupta、Jose E. Moreira, Samuel P. Midkiff and Manish Gupta等人進行的專案,則著重在修改VM並配合自定的函式庫來增進效能。 但無論是靠修改Java語言或是修改VM,都有其不可避免的優缺點。修改Java語言或class格式將失去Java本身跨平台的特性,而只修改VM而不配合修改編譯器,將會使它增加釵h額外的負擔來檢查執行時物件的狀態。到目前為止,仍然沒有一個完整的架構能整合Java編譯器及VM,因此我們在這裡提出一套讓Java編譯器和VM能更緊密配合的架構,來支援像數值運算這樣的特殊運算環境。 我們的概念是利用class格式裡面彈性的attribute設計,不需要更改Java語言,只需修改Java編譯器在class檔中加入有用的attribute資訊,並修改VM去讀取這些資訊並做對應的動作來提升整體的效率,如此一來我們不但能保有class跨平台的特性,也能省去VM在執行時的釵h負擔,增進效能。Enhancements of Java techniques on Numerical Computing have already undergone wide discussion. These attempts may be divided into two categories: The works led by Michael Philippsen & Edwin Ghnthner, and Brian Blout & Siddhartha Chatterjee focus on improving Java through utilizing new Java compilers or modifying the Java language. The research done by Peng Wu, Sam Midkiff, Jose Moreira & Manish Gupta, and Jose E. Moreira, Samuel P. Midkiff & Manish Gupta emphasizes performance enhancement through modification of Virtual Machine (VM), provided with self-defined class libraries. However, despite the advantages of modifying Java or VM, they all have their own shortcomings. By altering the Java language or its class format, one risks losing the advantage of cross-platform portability, which is an important trait of Java. By altering only the VM but not the compiler, one would have to put more work into examining the status of objects at execution time. Until now there has not been a complete architecture capable of integrating Java compiler and VM, and it is the reason why we shall present a set of infrastructure that will bind the compiler and VM more closely so that they could support special computing environments such as numerical computing. Our concept is to use the flexible attribute designs in the class format to keep the Java language unaltered, and to change only the Java compiler so that it would add useful attribute information to the class file during compilation. Then, we modify the VM to read in the information and to react correspondingly. In this way, we not only preserve class portability, but also free VM from excess status judgment at execution time, which greatly improves its performance.Chapter 1 - Introduction......................1 Chapter 2 - Java Performance Difficulties.....4 2-1 Complex Issue...........................4 2-2 Array Issue.............................8 Chapter 3 - JNC Framework....................13 3-1 Java Numerical Computing Framework.....13 3-2 DAXPY Attribute........................15 3-3 Array Attributes.......................19 3-2 Complex Attributes.....................27 Chapter 4 - Implementation...................33 Chapter 5 - Experimental Results.............36 5-1 Seven Simple Programs..................36 5-2 Java Linpack...........................42 Chapter 6 – Conclusions and Future Works....48 6-1 Conclusions............................48 6-2 Future Works...........................49 References...................................51 Appendix.....................................54194473 bytesapplication/pdfen-US數值運算JavaNumericalJava數值運算架構之改進Enhancement of Java Numerical Computing Frameworkthesishttp://ntur.lib.ntu.edu.tw/bitstream/246246/54062/1/ntu-93-R90922006-1.pdf