Skip to content

akohlmey/tclmpi

Repository files navigation

TclMPI Logo

The TclMPI package contains software that wraps an MPI library for Tcl and allows MPI calls to be used from Tcl scripts. This code can be compiled as a shared object to be loaded into an existing Tcl interpreter or as a standalone TclMPI interpreter. In combination with some additional bundled Tcl script code, additional commands are provided that allow to run Tcl scripts in parallel via "mpirun" or "mpiexec" similar to C, C++ or Fortran programs.

Homepage

The main author of this package is Axel Kohlmeyer and you can reach him at [email protected]. The online documentation for this project is at https://akohlmey.github.io/tclmpi/, a PDF version of the documentation is also available, and development is hosted on GitHub.

For basic compilation and installation instructions, please see the file INSTALL. More detailed documentation is available online from the User's Guide.

Information about the implementation and design of the package are in the Developer's Guide.

Precompiled Binaries

Precompiled binary packages of TclMPI are available for the following operating systems and distributions.

Microsoft Windows

A precompiled installer package for 64-bit Windows 10 (Version 21H1) is available from the TclMPI GitHub Releases Page.

To use this package, the MS-MPI package version 10.x and ActiveTcl version 8.6 from ActiveState must be downloaded and installed first. The installer will check for them and refuse to install TclMPI without.

MS-MPI is available here. You only need the "msmpisetup.exe" file and ActiveTcl is available here

Ubuntu Linux

PPA repositories for Ubuntu Linux are hosted on Launchpad at: https://launchpad.net/~akohlmey/+archive/ubuntu/tclmpi

Uses Launchpad

To access the PPA and install the package, use the commands:

sudo add-apt-repository ppa:akohlmey/tclmpi
sudo apt-get update
sudo apt-get install tcl-tclmpi

Currently binaries are created for Ubuntu 20.04LTS and later.

Fedora Linux

Repositories with TclMPI packages for Fedora Linux are hosted on Copr at https://copr.fedorainfracloud.org/coprs/akohlmey/TclMPI/

Copr build status

To access the Copr repository use the command:

sudo dnf copr enable akohlmey/TclMPI

To install TclMPI with support for the OpenMPI MPI library, use the command:

sudo dnf install tclmpi-openmpi

To install TclMPI with support for MPICH MPI library, use the command:

sudo dnf install tclmpi-mpich

Please note that to use any of the MPI libraries the corresponding environment module must be loaded first, e.g. with:

module load mpi

Test Status

Linux macOS CodeQL

Citing

You can cite TclMPI as:

Axel Kohlmeyer. (2021). TclMPI: Release 1.2 [Data set]. Zenodo. DOI

Acknowledgements

Thanks to Arjen Markus and Chris MacDermaid for encouragement and (lots of) constructive criticism, that has helped enourmously to develop the package from a crazy idea to its current level. Thanks to Alex Baker for motivating me to convert to using CMake as build system which makes building TclMPI natively on Windows much easier.

A special thanks also goes to Karolina Sarnowska-Upton and Andrew Grimshaw that allowed me to use TclMPI as an example in their MPI portability study, which helped to find quite a few bugs and resolve several portability issues before the code was hitting the real world.