Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
1d639b3
initial virtual-id refactoring
aeblyve Aug 31, 2023
0274504
integrate ggid machinery into vid machinery
aeblyve Aug 31, 2023
c681911
ggid machinery integration: FIXME commentary
aeblyve Aug 31, 2023
13c9de0
fix logic bug: updated_comm -> updated_comm_ggid
aeblyve Sep 1, 2023
99b29df
record-replay -> decode-recode
aeblyve Sep 1, 2023
7ae5022
actually remove old descriptors when RID is freed
aeblyve Sep 1, 2023
abd7ef7
eliminate one lookup in seq_num_broadcast
aeblyve Sep 1, 2023
39589d8
fixup descriptor deletion
aeblyve Sep 1, 2023
567dbd1
CRIPPLE unit-test Makefile, for now.
aeblyve Sep 1, 2023
7310355
Remove all LOG_CALL
aeblyve Sep 18, 2023
8836656
REMOVED record-replay functions
aeblyve Sep 19, 2023
8550644
Added fortran conditional macros, for ExaMPI. But no makefile yet.
aeblyve Sep 19, 2023
9aae6fe
Simplify Type_vector wrapper
aeblyve Sep 19, 2023
bd55409
Added MPI-naive lh_constants_map
aeblyve Sep 19, 2023
3275bc7
Added usage of REAL_CONSTANT as required
aeblyve Sep 19, 2023
87b8d7c
libproxy.c fixup
aeblyve Sep 19, 2023
eeeb8a8
mpi_constants fixup
aeblyve Sep 19, 2023
0358def
init_lh_constants_map in Init, Init_thread
aeblyve Sep 19, 2023
37815cf
REAL_CONSTANT in vids
aeblyve Sep 19, 2023
f249fed
Change MANA_EXAMPI to just EXAMPI
aeblyve Sep 19, 2023
52835c5
fixed one realOp definition
aeblyve Sep 19, 2023
77ac3de
MPI collectives EXAMPI definitions
aeblyve Sep 19, 2023
db2cfbe
Some OpenMPI definitions
aeblyve Sep 20, 2023
252a07a
Programmatic per-MPI virtual-ids.cpp definition
aeblyve Sep 20, 2023
f673093
Initial makefile conditional per-MPI
aeblyve Sep 21, 2023
8e19721
Fix a type problem a-la MPI_File
aeblyve Sep 21, 2023
a8fc316
Improved conditional makefile
aeblyve Sep 21, 2023
35cf6d0
Conditional stub generation, fixed greps
aeblyve Sep 21, 2023
6ca98ce
REVERT conditional mpi_stub_wrappers.
aeblyve Sep 21, 2023
2dba7c4
Conditional fortran wrappers
aeblyve Sep 21, 2023
796f5c9
MPI-specific wrapper files
aeblyve Sep 21, 2023
e8dfb6d
MPI-specific fortran wrappers
aeblyve Sep 21, 2023
e417529
Remove extra tokens at endif directive
aeblyve Sep 21, 2023
75f4f2e
Fix trailing spaces
aeblyve Sep 21, 2023
7566a80
Fix grep
aeblyve Sep 21, 2023
24a86b9
Fixup multiline
aeblyve Sep 21, 2023
4f1a368
Change error to exit
aeblyve Sep 21, 2023
dd2d5ed
Fix fortran makefile
aeblyve Sep 21, 2023
5aacf1f
Conditional libproxy.h using header file
aeblyve Sep 21, 2023
1ef684f
Include mpi.h
aeblyve Sep 21, 2023
bcde8ea
Conditional cart_wrappers
aeblyve Sep 22, 2023
4a3254e
Condition collective_wrappers
aeblyve Sep 22, 2023
7166f15
Conditional comm_wrappers
aeblyve Sep 22, 2023
a840f18
Conditional op_wrappers
aeblyve Sep 22, 2023
1d88699
Conditional p2p_wrappers
aeblyve Sep 22, 2023
8ce2cb2
Conditional request wrappers
aeblyve Sep 22, 2023
9017493
Conditional type wrappers
aeblyve Sep 22, 2023
5ef4a46
Conditional general wrappers
aeblyve Sep 22, 2023
71caad2
Conditional mpi_plugin
aeblyve Sep 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 13 additions & 3 deletions mpi-proxy-split/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ WRAPPERS_SRCDIR=mpi-wrappers
# As you add new files to your plugin library, add the object file names here.

LIBOBJS = mpi_plugin.o p2p_drain_send_recv.o p2p_log_replay.o \
record-replay.o seq_num.o \
seq_num.o virtual-ids.o \
split_process.o ${LOWER_HALF_SRCDIR}/procmapsutils.o

#MANA_COORD_OBJS = mana_coordinator.o
Expand Down Expand Up @@ -67,8 +67,18 @@ libmana.so: ${LIBOBJS} ${WRAPPERS_SRCDIR}/libmpiwrappers.a
${CXX} -shared -fPIC -g3 -O0 -o $@ ${LIBOBJS} -Wl,--whole-archive ${WRAPPERS_SRCDIR}/libmpiwrappers.a -Wl,--no-whole-archive

mpi_unimplemented_wrappers.cpp: generate-mpi-unimplemented-wrappers.py \
mpi_unimplemented_wrappers.txt
python $^ > $@
mpi_unimplemented_wrappers_mpich.txt \
mpi_unimplemented_wrappers_openmpi.txt \
mpi_unimplemented_wrappers_exampi.txt
if mpiexec -h | grep -q 'mpich'; then
python generate-mpi-unimplemented-wrappers.py mpi_unimplemented_wrappers_mpich.txt > $@
elif mpixec -h | grep -q 'open-mpi'; then
python generate-mpi-unimplemented-wrappers.py mpi_unimplemented_wrappers_openmpi.txt > $@
elif mpiexec -h | grep -q 'ExaMPI'; then
python generate-mpi-unimplemented-wrappers.py mpi_unimplemented_wrappers_exampi.txt > $@
else
$(error The MPI flavor could not be identified.)
fi

.c.o:
${MPICC} ${CFLAGS} -c -o $@ $<
Expand Down
22 changes: 22 additions & 0 deletions mpi-proxy-split/lower-half/libproxy.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,29 @@ static void* MPI_Fnc_Ptrs[] = {
NULL,
};

#define INIT_CONST_MAP(const) mpi_constants[LH_MPI_##const] = MPI_##const;

static int mpi_constants_initialized = 0;
static void* mpi_constants[LH_MPI_Constant_Invalid + 1];
// Local functions

void*
get_lh_mpi_constant(enum MPI_Constants constant)
{
if (!mpi_constants_initialized) {
mpi_constants[LH_MPI_Constant_NULL] = NULL;
FOREACH_CONSTANT(INIT_CONST_MAP)
mpi_constants[LH_MPI_ERRORS_RETURN] = 0;
mpi_constants[LH_MPI_Constant_Invalid] = NULL;
mpi_constants_initialized = 1;
}
if (constant < LH_MPI_Constant_NULL ||
constant > LH_MPI_Constant_Invalid) {
return NULL;
}
return mpi_constants[constant];
}

LhCoreRegions_t*
getLhRegionsList(int *num)
{
Expand Down Expand Up @@ -346,6 +367,7 @@ void first_constructor()
lh_info.g_appContext = (void*)&g_appContext;
lh_info.lh_dlsym = (void*)&mydlsym;
lh_info.getRankFptr = (void*)&getRank;
lh_info.lh_mpi_constants = (void*)&get_lh_mpi_constant;

#ifdef SINGLE_CART_REORDER
lh_info.getCoordinatesFptr = (void*)&getCoordinates;
Expand Down
Loading