Skip to content

Commit ed01646

Browse files
committed
chore: reorg dirs; rm dead code; document runtimes
This commit 1. Reorganizes and renames subdirectories to clarify the categories of code stored in each subdirectory. 2. Adds src/README.md to clarify that MPI is the only supported communication library and to explain the historical reasons for keeping the unsupported GASNet and OpenSHMEM runtimes. 3. Removes many of the unmaintained static Makefiles, including those that were used to build the unsupported runtimes. 4. Removes dead code in the opencoarrays.F90 module, retaining only the code that is useful for archival purposes because it is used in a publication at https://doi.org/10.1145/3144779.3169110. 5. Updates the build system where necessitateed by the above edits.
1 parent 2f8fd3b commit ed01646

26 files changed

+95
-860
lines changed

CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ add_custom_target( hash_installed
697697
#---------------------------------------------------------------------------------------
698698
# Define macro for adding CAF tests, and ensuring proper flags are passed to MPI runtime
699699
#---------------------------------------------------------------------------------------
700-
# Test for OpenMPI moved to src/mpi/CMakeLists.txt and passed back up through set(... PARENT_SCOPE)
700+
# Test for OpenMPI moved to src/runtime-libraries/mpi/CMakeLists.txt and passed back up through set(... PARENT_SCOPE)
701701
function(add_caf_test name num_caf_img test_target)
702702
# Function to add MPI tests.
703703
if(TARGET ${test_target})

install.sh

+2-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181

8282
### Start of boilerplate -- do not edit this block #######################
8383
export OPENCOARRAYS_SRC_DIR="${OPENCOARRAYS_SRC_DIR:-${PWD%/}}"
84-
if [[ ! -f "${OPENCOARRAYS_SRC_DIR}/src/libcaf.h" ]]; then
84+
if [[ ! -f "${OPENCOARRAYS_SRC_DIR}/src/runtime-libraries/mpi/mpi_caf.c" ]]; then
8585
echo "Please run this script inside the top-level OpenCoarrays source directory or "
8686
echo "set OPENCOARRAYS_SRC_DIR to the OpenCoarrays source directory path."
8787
exit 1
@@ -332,6 +332,7 @@ elif [[ "${arg_p:-}" == "opencoarrays" ]]; then
332332
fi
333333
fi
334334

335+
335336
elif [[ "${arg_p:-}" == "ofp" ]]; then
336337

337338
# Install Xcode command line tools (CLT) if on macOS and if needed

prerequisites/build.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
export OPENCOARRAYS_SRC_DIR="${OPENCOARRAYS_SRC_DIR:-${PWD%prerequisites*}}"
3434
export __usage=${OPENCOARRAYS_SRC_DIR}/prerequisites/build.sh-usage
35-
if [[ ! -f "${OPENCOARRAYS_SRC_DIR}/src/libcaf.h" ]]; then
35+
if [[ ! -f "${OPENCOARRAYS_SRC_DIR}/src/runtime-libraries/mpi/mpi_caf.c" ]]; then
3636
echo "Please run this script inside the OpenCoarrays source \"prerequisites\" subdirectory"
3737
echo "or set OPENCOARRAYS_SRC_DIR to the top-level OpenCoarrays source directory path."
3838
exit 1

src/CMakeLists.txt

+3-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
set(directories_to_build mpi tests)
2-
foreach(directory ${directories_to_build})
3-
add_subdirectory(${directory})
4-
endforeach()
1+
add_subdirectory(application-binary-interface )
2+
add_subdirectory(runtime-libraries )
3+
add_subdirectory(tests)
54

65
set(N_CPU ${N_CPU} PARENT_SCOPE)
76
set(HOST_NAME ${HOST_NAME} PARENT_SCOPE)
87

98
if(openmpi)
109
set(openmpi ${openmpi} PARENT_SCOPE)
1110
endif()
12-
13-
install( FILES libcaf.h libcaf-gfortran-descriptor.h libcaf-version-def.h
14-
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
15-
)

src/README.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
OpenCoarrays Runtime Libraries
2+
==============================
3+
4+
One original goal of the OpenCoarrays project was to provide a transparent application binary interface (ABI) supported by interchangeable parallel runtime libraries based on a range of communication libraries. The following header files in this directory define that ABI:
5+
6+
* libcaf.h
7+
* libcaf-gfortran-descriptor.h
8+
* libcaf-version-def.h:
9+
10+
where the above files are in dependency order: each file depends on the file(s) listed below it. The [runtime-libraries](./runtime-libraries) subdirectory contains runtimes based on the following communication libraries:
11+
12+
* Message Passing Interface (MPI)
13+
* OpenSHMEM
14+
* GASNet
15+
16+
We currently maintain, build, and test only the MPI runtime. The GASNet and OpenSHMEM runtime library source code serve only to provide detailed, open-source documentation of the research described by [Fanfarillo et al. (2014)] and [Rouson et al. (2017)]. For a Fortran 2018 parallel runtime library based on the more recent GASNet-EX exascale networking middleware described by [Bonachea and Hargrove (2018)], please see the [Caffeine] repository.
17+
18+
[Fanfarillo et al. (2014)]: http://dx.doi.org/10.1145/2676870.2676876
19+
[Rouson et al. (2017)]: https://doi.org/10.1145/3144779.3169104
20+
[Bonachea and Hargrove (2018)]: https://doi.org/10.1007/978-3-030-34627-0_11
21+
[Caffeine]: https://go.lbl.gov/caffeine
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
install( FILES libcaf.h libcaf-gfortran-descriptor.h libcaf-version-def.h
2+
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
3+
)
File renamed without changes.

src/common/Makefile

-9
This file was deleted.

0 commit comments

Comments
 (0)