6 Acknowledgments Acknowledgments I want to take the time to thank all the people who helped to establish this thesis. The first one to mention is Jürgen Quittek. Thanks for all his tips and support and our discussions that helped me finding my way and thanks for the patience he always had with me. Thanks to the Sather group at the ICSI for their support. A special thanks to Boris Weissman for building Active Threads that made this thesis possible and thanks for all our discussions. Thanks to Prof. Otto Lange as the supervisor of this thesis at the Technical University of Hamburg-Harburg and thanks to Prof. Jerome Feldman for his invitation for my stay at the ICSI. Last, actually the most important persons, thanks to my parents. Several models for parallel programming have been introduced in the past. The most popular one is the message passing model. The user distributes the application over multiple processing nodes that are connected over a network. The distributed parts of the application interact with each other by sending messages across the network. The user has to take care of the synchronization of all parts. He has to spent a lot of effort in partitioning the application and finding an efficient placement of the parts on the processing nodes. One improvement to avoid the explicit message passing was the software supported virtual shared memory. Objects of an application can be shared among distributed processors and accessed by all of them. The accesses to shared objects are transformed into remote accesses transparent to the user. This helps the user to reduce explicit message passing. Still the placement of the application was a major problem. Another step to ease parallel programming has been the invention of SMPs (Symmetric MultiProcessor Systems), multiprocessor machines with physical shared memory, along with a multithreaded programming model. The user can express parallelism with multiple threads. He does not have to care for the placement of the threads, because all threads are scheduled by the runtime system on one machine. Instead of explicitly sending messages between threads, threads can access objects in the physically shared memory. For a long time no solution has been available to use several linked SMPs easily. Again, the user has to use explicit message passing or a virtual shared memory and has to take care of the placement of its application on the different SMPs.
[1]
Assaf Schuster,et al.
Thread migration and its applications in distributed shared memory systems
,
1998,
J. Syst. Softw..
[2]
Fred Douglis,et al.
Process Migration in the Sprite Operating System
,
1987,
ICDCS.
[3]
Gul A. Agha,et al.
ACTORS - a model of concurrent computation in distributed systems
,
1985,
MIT Press series in artificial intelligence.
[4]
Raphael A. Finkel,et al.
Designing a Process Migration Facility
,
1989
.
[5]
Andrew P. Black,et al.
Fine-grained mobility in the Emerald system
,
1987,
TOCS.
[6]
Marvin M. Theimer.
Preemptable remote execution facilities for loosely-coupled distributed systems (migration, transparency, scheduling)
,
1986
.
[7]
Scott Pakin,et al.
Fast messages: efficient, portable communication for workstation clusters and MPPs
,
1997,
IEEE Concurrency.
[8]
Edward Mascarenhas,et al.
Migrant threads on process farms: parallel programming with Ariadne
,
1998,
Concurr. Pract. Exp..
[9]
Jeffrey S. Chase,et al.
The Amber system: parallel programming on a network of multiprocessors
,
1989,
SOSP '89.
[10]
Edward R. Zayas,et al.
Attacking the process migration bottleneck
,
1987,
SOSP '87.
[11]
Reinhard Lüling,et al.
Load balancing in large networks: a comparative study
,
1991,
Proceedings of the Third IEEE Symposium on Parallel and Distributed Processing.