The following is a list of some of the most important features of mdcore, in no particular order:
Arbitrary potential functions: The inter-particle potentials are evaluated using smooth piecewise polynomial interpolants which can be constructed from any user-supplied interaction function.
Pairwise Verlet lists: Per-cell pair Verlet lists can be used to speed up low-density simulations without affecting parallel performance.
POSIX pthreads: All multi-threading is implemented using the standard pthreads routines which should be available on any POSIX-compliant system.
Distributed-memory parallelism: Basic distributed-memory parallelism is implemented with asynchronous MPI routines.
Support for the Cell/BE: When configured with the "--with-cell" option, the library can compute non-bonded interactions on the SPUs as well as on the PPU.
Support for CUDA GPUs: When configured with the "--with-cuda" option, the library can compute non-bonded interactions on a CUDA-capable GPU.
Support for SSE/SSE2: When available, the interaction routines are compiled using SSE (single-precision) or SSE2 (double-precision) vectorized instructions.