| |||||||||||||||||
In addition to facilitating advanced research in computer sciences and parallel computing, the laboratory is intended to give undergraduate and graduate students the opportunity to become acquainted with the state-of-the-art equipment and technology in these areas. The following courses use the laboratory facilities for teaching and exercising.
This is a course for advanced undergraduate and graduate students in
Computer Science, Physics, and Engineering who are interested in large
scale scientific/engineering computations.
The course contains lectures and exercises.
The exercises are intended to give the ``real'' encounter with the
realm of supercomputing, and in this context the importance of the
Meiko multiprocessors cannot be overemphasized.
The students use the Meiko system to run exercises
ranging from simple calculations to solutions of Partial Differential
Equations.
Important issues in these exercises are the efficient implementation
of the hardware, the practical evaluation of the real overheads and the
understanding of the contrast between parallel,
vector and scalar computers.
Design and Analysis of Parallel Algorithms
The students design parallel matrix computations
algorithms and analize their theoretical and actual performance.
The students use both the Meiko machines and the Panda machine.
Programming in Parallel Environments
In this course the students get
3 Hw problems (aims to understand issues in parallel programming).
Parallel and Distributed Programming
The course includes a variety of language constructs,
techniques, and applications for parallel and distributed
programming. The programming exercises are written in
C and in Occam on the Meiko, and emphasize methodologies
for increasing parallelism and avoiding subtle errors
common in a distributed environment.
Operating Systems Laboratory
During the semester the students analize, design and implement several
projects in the field of operating systems.
The students' projects in the laboratory
address questions of controlling and managing parallel machines,
as well as problems of parallel and distributed operating systems.
Laboratory for Computer Communication
This is a course for advanced undergraduate and graduate students and
is intended to provide ``hands on'' experience with using communication
protocols, especially TCP/IP. The projects cover several aspects of
computer communication networks, from an Ethernet LAN analyzer,
through reliable communication and a TCP/OSI interface, to a name
server. The laboratory uses a system of 10 AST 80486 personal
computers connected by a local area network, running the XINU
operating system.
Advanced Programming Laboratory
ParC is a parallel programming language. It supports ANSI C plus several constructs that allow parallel programming. These constructs are simple generalizations of regular C constructs and are therefore easy to use. Moreover, the scoping rules of C have been generalized in ParC for the parallel case. This makes ParC an attractive programming language, especially convenient for parallelizing existing serial code.
In this lab we intend to implement ParC in a distributed computing environment. In recent years, distributed computing environments have become quite common. This is a result of the relatively low price of powerful personal computers and local area networks. Being able to treat a local area network as a parallel computer offers a potential for powerful computing with a much lower cost/performance ration then could be achieved otherwise. Thus, having an implementation of ParC on a distributed environment could greatly benefit establishments that use local area networks and need powerful computing at a low price.
The first implementation of ParC is on a network of PC computers, running Novell's Netware, DOS and DJGPP dos extender. The main advantage of this implementation is that it make use of standard software such as DOS and Novell's Netware. The implementation itself is divided into two parts: a mini-kernel that is responsible for the management of threads and a distributed shared memory mechanism.
The second implementation of ParC is on a network of PC computers, running the Mach 3.0 operating system. Mach 3.0 is an advanced operating system that represents the new generation of operating systems. By the use of Mach 3.0, we hope to achieve simpler implementations and higher performance. By using Mach 3.0 we also hope to achieve an educational goal by exposing the students to this new generation of operating systems.
The second aspect of the lab examines ParC as a programming language for parallelizing an existing code. With advise from ``Intel'', we have decided to try to parallelize the BDD package using ParC, and to check speedups a simulator of ParC, running on an Intel 80386 PC. The BDD package is an efficient software that enables automatic verification of hardware and is being used by commercial companies. Thus, it can serve as a good test case for the ability to achieve good speedups by parallelizing programs using ParC.
| Intro | Staff | Research | Projects | Publications |