Biomedical Engineering Reference
In-Depth Information
comments from the source code and also parses the source code structure and gen-
erates documentation targeted at developers using the OpenCMISS library, as well
as developers contributing to the OpenCMISS project (available from cmiss.bioeng.
auckland.ac.nz/OpenCMISS/doc/programmer).
A second Subversion system svn.physiomeproject.org/svn/opencmissextras
hosted by the ABI is used to assist developers in setting up a development envi-
ronment for OpenCMISS, mainly by facilitating retrieval of compatible versions of
the third-party libraries and tools on which OpenCMISS depends.
Finally, the main OpenCMISS website (opencmiss.org) uses the ModX content
management system.
Open source libraries
OpenCMISS builds on a number of successful software projects used in the
modelling community. In accordance with an open source design philosophy,
OpenCMISS aims to use software libraries that are, where at all possible, themselves
open source. In cases where a library is not open source that library and its function-
ality are considered optional so that it is possible to build a completely open-sourced
product.
For parallel computations in a heterogeneous multiprocessing environment
OpenCMISS uses the MPI standard (mpi-forum.org) for distributed parallelisation
and the OpenMP (openmp.org) standard for shared memory parallelisation.
OpenCMISS has been tested with the MPICH2 (mcs.anl.gov/research/projects/
mpich2), Open MPI (open-mpi.org), MVAPICH (mvapich.cse.ohio-state.edu) open
source MPI libraries as well as vendor specific MPI libraries from Intel and IBM.
Recently, OpenCMISS developers have been investigating parallel computations on
GPGPUs using CUDA (nvidia.com/object/cuda home new.html). However, as
CUDA is proprietary technology developers have started to consider OpenCL
(khronos.org/opencl) for programming GPGPUs.
In order to calculate optimal mesh partitions OpenCMISS uses the parallel
graph partitioning package ParMETIS (glaros.dtc.umn.edu/gkhome/metis/parmetis/
overview). The licensing options for ParMETIS allow it to be used freely
only for educational and research purposes by non-profit institutions. For sit-
uations where this copyright is too restrictive OpenCMISS also uses Scotch
(gforge.inria.fr/projects/scotch) for graph partitioning.
For numerical solvers OpenCMISS makes use of a number of third-party
libraries. Particular use is made of libraries developed through the US De-
partment of Energy SciDAC (scidac.gov), TOPS (scidac.gov/math/TOPS.html)
and ACTS (acts.nersc.gov) projects. For linear and non-linear system solvers
OpenCMISS uses PETSc (mcs.anl.gov/petsc) for iterative Krylov sub-space lin-
ear system solvers. In addition a number of direct linear solvers such as MUMPS
(graal.ens-lyon.fr/MUMPS), SuperLU DIST (crd.lbl.gov/
xiaoye/SuperLU) and
PaStiX (gforge.inria.fr/projects/pastix) are available in OpenCMISS through a
PETSc interface. OpenCMISS also uses
Search WWH ::




Custom Search