modified on 4 October 2016 at 11:07 ••• 7,910 views

Release66:ARMCI

From NWChem

(Difference between revisions)
Jump to: navigation, search
m (Choosing the Right ARMCI Library)
m (Choosing the Right ARMCI Library)
Line 10: Line 10:
There are many different ways to use MPI as the communication runtime of Global Arrays:
There are many different ways to use MPI as the communication runtime of Global Arrays:
-
* ARMCI_NETWORK=MPI-PR - ARMCI with progress rank
 
-
* ARMCI_NETWORK=MPI-PT - ARMCI with progress thread
 
-
* ARMCI_NETWORK=MPI-MT - ARMCI over multi-threaded MPI
 
-
* ARMCI_NETWORK=MPI-TS - ARMCI over MPI without data server
 
-
* ARMCI_NETWORK=MPI-SPAWN - ARMCI over MPI using MPI-Spawn to create the extra data server process
 
-
* ARMCI_NETWORK=ARMCI and EXTERNAL_ARMCI_PATH=''path-to-armci-mpi'' - uses ARMCI-MPI
 
-
 
-
 
<center>
<center>
{| border='1' cellspacing='0'
{| border='1' cellspacing='0'
-
|+Printable items in the TCE modules and their default print levels
+
|+Caption
-
| Item
+
| ARMCI_NETWORK
-
| Print Level
+
| Additional variables
-
| Description
+
| Result
|-
|-
-
| "time"
+
| MPI-PR
-
| vary
+
| None
-
| CPU and wall times
+
| ARMCI with progress rank
|-
|-
-
| "mo2e"
+
| MPI-PT
-
| debug
+
| None
-
| Two-electron integral transformation
+
| ARMCI with progress thread
 +
|-
 +
| MPI-MT
 +
| None
 +
| ARMCI over multi-threaded MPI
 +
|-
 +
| MPI-TS
 +
| None
 +
| ARMCI over MPI without data server
 +
|-
 +
| MPI-SPAWN
 +
| None
 +
| ARMCI over MPI using MPI-Spawn to create the extra data server process
 +
|-
 +
| ARMCI
 +
| EXTERNAL_ARMCI_PATH=''path-to-armci-mpi''
 +
| ARMCI with progress rank
|}
|}
</center>
</center>

Revision as of 06:21, 30 September 2015

Choosing the Right ARMCI Library

The Global Arrays parallel environment relies upon a one-sided communication runtime system. There are at least three options currently available:

  • ARMCI - This is the original one-sided library developed with Global Arrays by PNNL. It supports the widest range of platforms. See http://hpc.pnl.gov/armci/ for details.
  • ComEx - This library is being developed by PNNL to replace ARMCI. It supports the fewer platforms than ARMCI but may be more robust on modern ones like InfiniBand. See http://hpc.pnl.gov/comex/ for details.
  • ARMCI-MPI - This library is a completely separate implementation of the ARMCI interface by Argonne and Intel. It uses the one-sided communication features of MPI, rather than a platform-specific conduit. It currents provides both MPI-2 and MPI-3 implementations; the MPI-3 one is supported by nearly all platforms. See https://wiki.mpich.org/armci-mpi/index.php/Main_Page for details.

By default, Global Arrays will choose ARMCI or ComEx, based upon the environment variables selected by the user (see GA documentation for details). When a native implementation is available and works reliably, this is the best option for the NWChem user. However, in cases where an native implementation of ARMCI is not available or is not reliable, the user should consider using one of the MPI-based implementations.

There are many different ways to use MPI as the communication runtime of Global Arrays:

Caption
ARMCI_NETWORK Additional variables Result
MPI-PR None ARMCI with progress rank
MPI-PT None ARMCI with progress thread
MPI-MT None ARMCI over multi-threaded MPI
MPI-TS None ARMCI over MPI without data server
MPI-SPAWN None ARMCI over MPI using MPI-Spawn to create the extra data server process
ARMCI EXTERNAL_ARMCI_PATH=path-to-armci-mpi ARMCI with progress rank