Project Requirements
Goals
PPF is hoped to be a robust, efficient, and correct library to help in
the parallelization of radiation particle transport packages. Specifically
the goals of the PPF are to:
- Distribute workload of radiation particle transport problems
semi-efficiently between nodes of large distributed supercomputers.
- Provide scalability of a problem across arbitrary nodes.
- Decompose the problem mesh across across multiple nodes transparently
to the developer.
- Provide transparent particle passing between nodes/mesh sections.
- Eliminate the need for developers to learn the intricacies of
distributed parallel programming.
- Provide a standard for particle physics module architectures.
- Reduce development and training time for radiation particle transport packages.
- Create a tracking system to aid in particle visualization.
Software Requirements
Since the parallel particle framework is a library to be used by developers of large
physics problems where correctness and efficiency is crucial, the library must have
the following attributes.
- Ease of Use: PPF must provide a simple interface that is intuitive to
a developer with no experience in parallel computing. All code dealing with
parallelization technology must be transparent to the developer.
- Efficiency: Large scale problems running billions of iterations on thousands of
nodes can continuously accumulate small efficiency problems eventually leading to a
significant increase to the running time of the problem. For this reason the PPF must
be extremely efficient in message passing and performance.
- Stability: Problems run by radiation transport particle packages may take days to
complete. For this reason it is imperative that PPF be stable by ensuring no
runtime errors nor memory leaks. This is more important for PPF than
other small scale applications
because a faulty run can cost the developers days at a time. In the advent of a crash
PPF should be able to resume operation at the last time step completed.
- Scalability: The platforms used for large scale radiation transport problems are
continuously growing in size, therefore in order for PPF to be of use
in the future it
must be scalable to an arbitrary number of nodes efficiently.
- Longevity: PPF must ensure the integrity of all its requirements for the life of
the package which implements it. The KULL framework is expected to be
a 20 year code, the PPF should
retain functionality for at least this time period.
Functional Requirements
The following two lists are details of the costumers needs and wants for the
Parallel particle frameworks functions.
Needs
- The library must be able to handle split meshes by indexing matched
faces between
mesh partitions.
- During runtime the PPF must be able to make the following decisions
correctly:
- when to stop tracking particles on a partial mesh and send particles frozen on a split
surface to another domain
- how many particles to buffer before sending
- how often to perform checks whether or not to send buffered particles
- when to ask if another domain is ready to send particles
- how to handle load balancing if possible
- what to do if one domain ends up with to many particles too fit in
memory
- Particles must be sent as efficiently as possible.
- particles should not be packaged with extra information for sending
- data should only be sent to nodes which require it, no broadcasts
- Particle transfers between nodes must be accurate.
- The library's interface must be intuitive and not dependent on a prior
knowledge in distributed computing.
Wants
- The library may handle any size mesh of type PolyMesh or PolyMesh2.
- The PPF may provide support for general domain decomposition and work sharing between nodes.
- The mesh may be re-decomposed dynamically to handle load balancing. \item The PPF may use a domain replication scheme to fairly distribute work loads.
- The PPF may include shared memory parallelization within each node using pthreads or OpenMP.
- The library may include extensions for particle visualizations.
- The library may decompose any given mesh using a graph cutting package such as Parmetas.
Non-Functional Requirements
- All code written for PPF must be compatible with both the egcs and
KCC compilers
- Programming must conform to sound object oriented design, and make
use of MPI2
if a reliable implementation is found for the sp2 architecture.
- PPF code must have general compliance with POSIX standards.
- There must be readable and comprehensive documentation in all stages of
the development process.
- The library must compile and run on AIX 4.3 and DEC Unix.
- The library must be easily integratible into the make system of existing
projects.
[HOME]