Parallel Simulation ToolKit (MPI)
Harnessing the Power of Parallel Computing

Parallel Simulation Toolkit (PSTk)  is a ongoing Open Source project to develop a Parallel library for simulation purposes. Due to the fact that many simulations that can be run on parallel computers are of similar nature, there is a great need for some generic functions. The ultimate goal is to develop functions that will handle the grid decomposition, message passing, and Performance measurements with a single function call (or very few function calls as possible).

PSTk is being developed using the MPI/MPITCH parallel library which will be written in C and Fortran/Fortran90. The goal is to be able to make single functional calls to PSTk which will then set the topology, grid decomposition, and will automatically pass messages through MPI/MPITCH.

We are currently searching for developers experienced in MPI/MPITCH and Parallel Simulation, though anyone wanting to join this project is welcome. Please contact us providing a breif description of your skills/experience and how you would like to contribute.

Email: Pieman

This project is being developed on Logo

Parallel Simulation Toolkit (PSTk) functionality

The project is divided up into several sub-projects that will contain functions that will handle the various tasks in running parallel simulations.

Grid Generation
This sub-project contains a collection of routines that automatically create various grids. The user is able to simply specify the type, size, and resoluiton of the grid and have PSTk handle all the other details. Given the many other Open source code available for grid generation, it is likely that the project will integrate many of these.  The sub-project concentrates in the following areas:

Grid Decomposition

Grid decomposition divides the grid into pieces and assigns each piece to a processor. In order for efficient execution of a Parallel simulation, the decomposition has to be done in an efficient manner. This subproject includes functions that do standard and optimised grid decomposition and concentrates in the following areas:

Parallel Numerical Solvers

Though it is impossible to provide all the numerical solvers that are used in simulations, there are many types of numerical proceadures that are commonly used. There are many other librarys that have already been written for numerical parallel computing (NSCP) so this subproject contains only commonly used , or micellanious numerical solvers.

Perfomance Measurements

In all parallel appications it is nessecary to measure the performace of you application. This sub-project section will develop functions that will measure the performance, collect the data, and perform statistical analysis. Development of a tool for automatically generating graphs, and run-time visualizations of these measurements is under discussion. The sub-project will concentrate in the following areas:

Miscelanious Parallel Computing Routines

Last but not least, is a collection of routines that handle file and data manipulation, and data visualization. The intention is to build up a vast collection of small routines that handle many different tasks. So far, this project has concentrated on: