Parallel Programming
The goal of this programming problem is to implement a matrix multiplication program in both shared memory and message passing. You can implement this on any parallel system. The suggested platform is the research cluster at FORTH-ICS. You will have access to 8 nodes of the cluster.
The platform
You can use either one of two platforms:
Platform 1: Direct access
Each node in the sub-cluster is a dual-processor AMD opteron system. The cluster nodes you will use are physically interconnected with a Gigabit Ethernet network. Although you may use this system as both a shared memory (over a software shared memory abstraction) and a message passing platform, in this assignment you will only use it as a message passing system over a standard library, Message Passing Interface (MPI). For the shared memory part of the assignment you will use a single node in the cluster that has two, quad-core CPUs, for a total of eight (8) CPUs. You can access the cluster by logging in via ssh to shark at port 4096 (ssh -p4096 139.91.92.100). You can only access shark only from IP addresses that belong to ICS (including the VPN of ICS) or from the IP addresses that belong to the VPN of CSD. From shark, you can then access the 4-node sub-cluster for MPI (mpifteki, mpikini, mpironi, mpistoli) and an eight-core node for SAS (mpiskoto) via ssh. User accounts for the cluster will be distributed in class.
Platform 2: Access via Kubernetes (setup courtesy of A. Chazapis and I. Malliotakis)
This platform provides access via pods running under Kubernetes. The servers are more powerful and the access mechanism aims to remove the hassle of using the platform directly. For detailed instructions, please check here.
The assignment
(a) SAS programming
To write a shared memory parallel program for the eight-core system you can use the ANL m4 macros (Argonne National Laboratory) that allow you to create processes (threads), allocate global memory, and use synchronization primitives. The file ~cs527/sas/macros/c.linux.m4 contains this set of macros. The ~cs527/sas/macros/c.null.m4 file may be handy for running the sequential versions of the SPLASH-2 programs.
Tasks:
References
Submission
Turn in (by mail to b i l a s @ c s d . u o c . g r) a tar file that contains your solutions and a README file stating assumptions or special features.