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: PiemanThis project is being developed on sourceforge.net:

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:

- Rectangular grids
- Polar Grids
- Finite Element Grids
- Grid generation taylored for Oceanographic Applications
- Grid generation taylored for Areospace Engineering Applications
- Grid generation taylored for Biomedical Applicatons

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:

- Standard grid decomposition
- 2D and 3D equipartitions
- Optimised decomposition throuh Simulated Annealing (SA) algorythms (Finite Element grid stuctures)

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.

- Poisson Solvers (PSOR, Guass-Siedal method)
- Linear Algebra Solvers (eigenvalues, eigenfunctions, etc.)
- Parallel ODE and PDE Solvers (Aimed towards CFD applications)
- Stochastic Simulation Solvers (Monte-Carlo, Lattice Boltzmann)

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:

- Timing Simulation Kernal
- Message Passing times, latency, and bandwidth
- Graphical and Chart output
- Real time visualisation

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:

- File input/output routines taylored for parallel systems.
- Small programs/scripts to collect and manipulate data files ouput from a parallel system
- Small programs to visualise grids.