APL has a long tradition as a language for the notation of computer architectures that dates back to its use as notation of the IBM 360 system. Its powerful primitives and compactness make it an ideal tool for simulating hardware functions in order to gain insights into the functionality, the performance and the programming issues of an algorithm without the need to undergo the painstaking process of actually building the target machine and implementing the program on it. We have developed an APL2 software simulator for Non-Von Neumann computers. The basic data structure of the system is an array whose elements model a number of RAMs containing control registers, data and program code. The user can “define” his/her machine by specifying the communication network and communication primitives, the instruction set and its semantics, and the complexity measure. We demonstrate the use of the program system for studying various schemes for adaptive load sharing on multicomputers.
[1]
Alfred Taudes.
Communication Heuristics in Distributed Combinatorial Search Algorithms
,
1989,
WDAG.
[2]
Charles L. Seitz,et al.
Multicomputers: message-passing concurrent computers
,
1988,
Computer.
[3]
Alexander H. G. Rinnooy Kan,et al.
A simulation tool for the performance evaluation of parallel branch and bound algorithms
,
1988,
Math. Program..
[4]
Josef Matulka.
Tcp/udp performance as experienced by user-level processes
,
1989
.
[5]
Eli Upfal,et al.
Parallel hashing: an efficient implementation of shared memory
,
1988,
JACM.
[6]
Satish K. Tripathi,et al.
SAHAYOG: A test bed for evaluating dynamic load‐sharing policies
,
1989,
Softw. Pract. Exp..