TNT (a widely used program for phylogenetic analysis) already has PVM (Parallel Virtual Machine) for parallel jobs handling. However:
- MPI remains the dominant model used in high-performance computing today. It has become a de facto standard for communication among processes that model a parallel program.
- Actual supercomputers such as computer Clusters often run such programs.
The project goal was to integrate MPI onto TNT and next to PVM. The user decides one or the other. Syntax and commands are practically the same.
Artificial Intelligence In Microbiology by Dr. Prince C P
MPI in TNT for parallel processing
1. The Message Passing Interface (MPI)
in TNT
Martín Morales
Pablo Goloboff
UEL
(CONICET – FML)
1/5
2. Parallel computing. Parallel computers.
Parallel computing: simultaneous execution of computational processes that allow the division of a work or problem.
Parallel computers: special hardware systems to perform parallel computing.
• Clusters: group of individual computers connected by a local area network (LAN). Most common: Beowulf.
• Multi-core computers: computer with a processor with two or more processing units. Most computers today are multi-core. That's means that we
can run parallel apps (as TNT!) in a real parallel hardware without a Cluster; just with our single computer!
MPI. The standard. The implementation.
MPI: Message Passing Interface. Standard. It defines a communication protocol for parallel computing execution. An MPI implementation is the software
that applies (implement) the standard. There are many implementations made of MPI. We choosed Open MPI.
Why TNT-MPI?
TNT already has PVM (Parallel Virtual Machine) for parallel jobs handling. However:
• MPI remains the dominant model used in high-performance computing today. It has become a de facto standard for communication among processes
that model a parallel program.
• Actual supercomputers such as computer Clusters often run such programs.
• Many sysadmins do not allow PVM to be run on their Clusters because if the way in which PVM uses resources (Pablo dixit.)
TNT-MPI
The project goal was to integrate MPI onto TNT and next to PVM. The user decides one or the other. Syntax and commands are practically the same.
Hosts in MPI (Clusters)
2/5
Hosts in MPI are loaded from a simple text file usually called hostfile.
Column 1: host name.
Column 2: slots: how many processes can potentially run in this host?
Column 3: max_slots: are we going to limit slots use in this host?
master: usually, computer that starts
processes (a job) on workers hosts and
coordinates all of their work.
worker: usually, computer that executes part
of that job.
Oversubscription: when the number of
processes in the host is greater than cores
or processors in it.
3. Install will be...
MPI implementation binaries must be in all nodes (if Cluster) and pointed to them in env variables. Then it must define hostfile (if Cluster).
Recommended implementation (at the moment): Open MPI version 4.0.1. Release date: March 2019.
TNT-MPI Stage
PARALLEL COMMANDS
PVM MPI
again, begin, cleansig, close, get,
gwait, kill, mnemonic, pause, reset,
resume, setram, setdata, spy, status,
stop, timeout, wait
IMPLEMENTED
goto, host commands, load, skipto,
tagset
soon...
Scripts
As PVM, MPI scripts runs directly in TNT built-in script interpreter. But, if we want to use MPI with the new C interpreter we can do it
“indirectly” with tnt() function (example below). Of course, we can do this with PVM too.
Next
• Full testing and probably... bug fixes.
• Windows. This development is at the moment just Linux and OS X (Mac) compatible.
3/5
• Development is in a final stage. About 90%.
• Main functionalities are already done.
• We can run jobs and get results; run swaps,
scripts...
4. Example. mult/swap searches.
> tnt p coetal2.tnt, ptnt mpi, ptnt begin JOB 8 =mult2=ho1, return, ptnt wait . > tnt p coetal2.tnt, ra1, ptnt mpi, ptnt begin JOB 8 /swap 0= , return, ptnt wait .
4/5