|
1 | | -# Task-Aware MPI Library |
2 | | - |
3 | | -:warning: **IMPORTANT:** :warning: The current library (TAMPI-OPT) implements significant |
4 | | -optimizations. Some features have been dropped and some others are not supported yet. The |
5 | | -following changes apply: |
6 | | - |
7 | | -* The library does not support request-based MPI operations. The following functions are no |
8 | | - longer implemented: `MPI_Wait`, `MPI_Waitall`, `TAMPI_Iwait`, `TAMPI_Iwaitall`. Instead, the |
9 | | - application should use blocking operations like `MPI_Recv` or `MPI_Send`, or the TAMPI |
10 | | - non-blocking variants like `TAMPI_Isend` or `TAMPI_Irecv`, which do not provide a request. |
11 | | - Check these TAMPI variants in `src/include/TAMPI_Wrappers.h`. |
12 | | -* All point-to-point and collective operations are supported except for `MPI_Sendrecv` and |
13 | | - `MPI_Sendrecv_replace`. |
14 | | -* Fortran applications are not supported for the moment. |
| 1 | + |
15 | 2 |
|
16 | 3 | The Task-Aware MPI or TAMPI library extends the functionality of standard MPI libraries |
17 | 4 | by providing new mechanisms for improving the interoperability between parallel task-based |
@@ -47,6 +34,30 @@ On the other hand, TAMPI is compatible with mainstream MPI implementations that |
47 | 34 | features. The following sections describe in detail the blocking (OmpSs-2) and non-blocking |
48 | 35 | (OpenMP & OmpSs-2) modes of TAMPI. |
49 | 36 |
|
| 37 | + |
| 38 | +## Important Notice |
| 39 | + |
| 40 | +The current library implements significant optimizations using a delegation technique. All the |
| 41 | +communications are delegated to a polling task, so the MPI interface is mostly accessed by this |
| 42 | +task. By delegating communications, we avoid threading contention at the MPI layer and obtain |
| 43 | +the MPI performance of single-threaded scenarios. Furthermore, another polling task handles the |
| 44 | +post-processing of tickets and calls the tasking runtime system. We call TAMPI-OPT to this |
| 45 | +optimized library. |
| 46 | + |
| 47 | +We have dropped some features and others are not supported yet in TAMPI-OPT. The following |
| 48 | +changes apply: |
| 49 | + |
| 50 | +* TAMPI-OPT does not support request-based MPI operations. The following functions are no |
| 51 | + longer implemented: `MPI_Wait`, `MPI_Waitall`, `TAMPI_Iwait`, `TAMPI_Iwaitall`. Please use |
| 52 | + use blocking operations (e.g., `MPI_Recv`, `MPI_Send`) or non-blocking TAMPI operations |
| 53 | + (e.g., `TAMPI_Isend`, `TAMPI_Irecv`). These latter do not provide a request and are the |
| 54 | + recommended for performance. Check these variants in `src/include/TAMPI_Wrappers.h`. |
| 55 | +* All point-to-point and collective operations are supported, except `MPI_Sendrecv` and |
| 56 | + `MPI_Sendrecv_replace`. |
| 57 | +* Fortran applications are not supported. |
| 58 | +* The documentation in the following sections may be outdated. |
| 59 | + |
| 60 | + |
50 | 61 | ## Blocking Mode (OmpSs-2) |
51 | 62 |
|
52 | 63 | The blocking mode of TAMPI targets the safe and efficient execution of blocking MPI operations |
|
0 commit comments