An open API service indexing awesome lists of open source software.

https://github.com/akohlmey/tclmpi

TclMPI - MPI Bindings for Tcl
https://github.com/akohlmey/tclmpi

mpi parallel-programming tcl

Last synced: 3 months ago
JSON representation

TclMPI - MPI Bindings for Tcl

Awesome Lists containing this project

README

        

![TclMPI Logo](TclMPI-logo.bmp)

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 . The online documentation for this project is at
[https://akohlmey.github.io/tclmpi/](https://akohlmey.github.io/tclmpi/),
a [PDF version of the documentation](https://akohlmey.github.io/tclmpi/tclmpi_docs.pdf)
is also available, and development is [hosted on GitHub](https://github.com/akohlmey/tclmpi/).

For basic compilation and installation instructions, please see the file
INSTALL. More detailed documentation is available online from the
[User's Guide](https://akohlmey.github.io/tclmpi/userguide.html).

Information about the implementation and design of the package are in the
[Developer's Guide](https://akohlmey.github.io/tclmpi/devguide.html).

# 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](https://github.com/akohlmey/tclmpi/releases).

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](https://github.com/microsoft/Microsoft-MPI/releases).
You only need the "msmpisetup.exe" file and ActiveTcl is
[available here](https://www.activestate.com/products/tcl/)

## Ubuntu Linux

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

[![Uses Launchpad](launchpad-badge-w120px.png)](https://launchpad.net/~akohlmey/+archive/ubuntu/tclmpi)

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

``` bash
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](https://copr.fedorainfracloud.org/coprs/akohlmey/TclMPI/package/tclmpi/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/akohlmey/TclMPI/package/tclmpi/)

To access the Copr repository use the command:

``` bash
sudo dnf copr enable akohlmey/TclMPI
```

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

``` bash
sudo dnf install tclmpi-openmpi
```

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

``` bash
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:

``` bash
module load mpi
```

# Test Status

[![Linux](https://github.com/akohlmey/tclmpi/actions/workflows/unittest-linux.yml/badge.svg?branch=master)](https://github.com/akohlmey/tclmpi/actions/workflows/unittest-linux.yml)
[![macOS](https://github.com/akohlmey/tclmpi/actions/workflows/unittest-macos.yml/badge.svg?branch=master)](https://github.com/akohlmey/tclmpi/actions/workflows/unittest-macos.yml)
[![CodeQL](https://github.com/akohlmey/tclmpi/actions/workflows/codeql-analysis.yml/badge.svg?branch=master)](https://github.com/akohlmey/tclmpi/actions/workflows/codeql-analysis.yml)

# Citing

You can cite TclMPI as:

Axel Kohlmeyer. (2021). TclMPI: Release 1.2 [Data set]. Zenodo. [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.598343.svg)](https://doi.org/10.5281/zenodo.598343)

# 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.