陳俊良臺灣大學:資訊工程學研究所高逸明Kao, Yi-MingYi-MingKao2007-11-262018-07-052007-11-262018-07-052004http://ntur.lib.ntu.edu.tw//handle/246246/53946隨著電腦硬體不斷地演進,工作站及個人電腦的計算能力愈來愈強大。大規模的問題可以透過串連這些機器,聚集所需的資源來解決。而這些機器相互間的溝通,常常是利用訊息傳遞界面所實現的。不同於傳統程序為主的實作,我們在這篇論文中,提出了一個以執行緒為本的訊息傳遞界面系統,來提供所需的溝通弁遄C 爪哇語言以跨平台著稱,且擁有釵h標準的類別函式庫。此外,在大部份的情況下,被串連起來的機器平台是互不相同的;因此,我們利用爪哇語言來實作整個系統,以保持其跨平台的特性。 目前已經成它a實作出一個以執行緒為本的爪哇訊息傳遞界面系統雛形,它具有彈性且所需的資源較少。我們透過釵h的標準測試程式,來比較我們系統與其它實作。結果顯示,我們的系統在各種程式上都具有不錯的效能。With the persistent evolution of computer hardware, workstations and personal computers are getting more and more powerful. Large-scale problems could be solved through connecting these machines to aggregate the required computation power or resources. The Message Passing Interface is pervasively used to realize the communications between connected hosts. Different from the traditional process-based implementations, we have proposed a thread-based system to provide the necessary communication facilities in this thesis. The Java programming language is famous for its portability and has a lot of standard class libraries. Moreover, the connected machines are heterogeneous in most cases. Therefore, our system was implemented in pure Java to ensure its portability. We have implemented the prototype of a thread-based Java MPI system successfully. Our system is more scalable and requires fewer resources. Many sorts of benchmarks were used to compare the performance of our implementation and other implementations. The result showed that our implementation performed well for all benchmarks.摘要 i Abstract iii Acknowledgement v Table of Contents vii List of Figures xi List of Tables xiii Listings xv Chapter 1. Introduction 1 1.1 Motivation 2 1.2 Thesis Organization 3 Chapter 2. Related Works 5 2.1 Message Passing Interface 5 2.1.1 History 5 2.1.2 Implementations 6 2.1.3 Programming Model 7 2.2 MPI-like implementations in Java 8 2.2.1 CCJ 8 2.2.2 MPJava 9 2.2.3 JOPI 10 2.2.4 jmpi 11 2.2.5 JavaMPI 11 2.2.6 mpiJava 12 2.2.7 DOGMA 13 2.2.8 JMPI 14 2.3 Multithread programming in Java 15 2.3.1 Advantages of multithreading 15 2.3.2 The Thread class 16 2.3.3 The Runnable interface 16 2.3.4 Creating threads 17 Chapter 3. Our Design 19 3.1 System Requirements 19 3.2 Mapping logical process to ThreadGroup 22 3.3 Programming Style 25 3.4 Configuration file 30 Chapter 4. Implementation 33 4.1 Programmer’s Interface 33 4.2 System Architecture and Bootstrap 35 4.2.1 System Architecture 35 4.2.2 Remote Method Invocation 37 4.2.3 Bootstrapping 39 4.3 Identifying logical process 40 4.4 Issues about Communicator 42 4.4.1 Communicator in MPI 42 4.4.2 Identifying Communicator 44 4.4.3 Algorithm for adding Communicator 46 4.4.4 An Example 47 4.5 Message Passing 48 4.5.1 Message passing between JVMs 48 4.5.2 Message passing between ThreadGroups 49 4.5.3 Collective and point-to-point messages 49 Chapter 5. Performance Evaluation 51 5.1 Test Environment 51 5.2 Basic Functionality 52 5.3 Large Scale Benchmarks 59 5.3.1 Fluid Dynamics 59 5.3.2 IDEA Encryption 62 5.3.3 Fourier Coefficient Analysis 63 5.3.4 3D Ray Tracer 64 Chapter 6. Conclusion and Future Work 67 6.1 Conclusion 67 6.2 Future work 68 Reference 71992479 bytesapplication/pdfen-US執行緒MPIJavathread以執行緒為本的Java MPI 系統之設計與實作Design and Implementation of a Thread-based Java MPI Systemthesishttp://ntur.lib.ntu.edu.tw/bitstream/246246/53946/1/ntu-93-R91922016-1.pdf