Skip to content

Commit

Permalink
Remove Blue Gene/Q support (#3563)
Browse files Browse the repository at this point in the history
  • Loading branch information
evan-charmworks committed Jan 24, 2022
1 parent 2d58c2f commit 7b08f0f
Show file tree
Hide file tree
Showing 85 changed files with 41 additions and 2,838 deletions.
11 changes: 2 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -354,7 +354,6 @@ endif()
set(CMK_OS_IS_LINUX 0)
set(CMK_MACOSX 0)
set(CMK_WINDOWS 0)
set(CMK_BLUEGENEQ 0)
set(CMK_POST_EXE "")
set(CMK_SHARED_SUF "so")
set(CMK_USER_SUFFIX ".user")
Expand All @@ -372,11 +371,6 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows" OR CMAKE_SYSTEM_NAME STREQUAL "CYGWI
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CHARM_OS "linux")
set(CMK_OS_IS_LINUX 1)
elseif(IS_DIRECTORY "/bgsys")
set(CHARM_OS "bluegeneq")
set(CMK_BLUEGENEQ 1)
set(CMK_SUPPORTS_MEMORY_ISOMALLOC 0)
message(DEPRECATION "Support for Blue Gene/Q targets has been deprecated as of Charm++ 7.0.0.")
else()
message(FATAL_ERROR "Unsupported operating system ${CMAKE_SYSTEM_NAME}.")
endif()
Expand Down Expand Up @@ -607,7 +601,6 @@ if(NOT EXISTS ${CMAKE_SOURCE_DIR}/src/arch/${VDIR}/)
message(FATAL_ERROR "Unsupported platform ${VDIR}.")
endif()

configure_file(src/arch/common/cc-bluegene.sh include/ COPYONLY)
configure_file(src/arch/common/cc-clang.sh include/ COPYONLY)
configure_file(src/arch/common/cc-clang.h include/ COPYONLY)
configure_file(src/arch/common/cc-icx.sh include/ COPYONLY)
Expand Down Expand Up @@ -958,7 +951,7 @@ foreach(l BUILDOPTS CMK_AMPI_WITH_ROMIO CMK_BUILD_PYTHON CMK_CAN_LINK_FORTRAN
CMK_LIBJPEG CMK_MOD_EXT CMK_SUPPORTS_FSGLOBALS CMK_SUPPORTS_PIPGLOBALS
CMK_SUPPORTS_PIEGLOBALS CMK_SUPPORTS_SWAPGLOBALS CMK_SUPPORTS_TLSGLOBALS
CMK_SYSLIBS CMK_TRACE_ENABLED CP OPTS_CC OPTS_CXX CMK_VDIR CMK_GDIR
CMK_HAS_ELF_H CMK_HAS_OPENMP CMK_AMPI_ONLY CMK_WINDOWS CMK_BLUEGENEQ
CMK_HAS_ELF_H CMK_HAS_OPENMP CMK_AMPI_ONLY CMK_WINDOWS
CXX_NO_AS_NEEDED LDXX_WHOLE_ARCHIVE_PRE LDXX_WHOLE_ARCHIVE_POST
CMK_MACOSX CMK_POST_EXE CMK_SHARED_SUF CMK_USER_SUFFIX OPTS_LD
CMK_COMPILER_KNOWS_FVISIBILITY CMK_LINKER_KNOWS_UNDEFINED
Expand Down Expand Up @@ -999,7 +992,7 @@ endif()
set(optfile_mak ${CMAKE_BINARY_DIR}/include/conv-mach-opt.mak)

file(WRITE ${optfile_mak} "# Build-time options header for Makefiles, automatically generated by cmake.\n")
foreach(l CUDA_DIR BUILD_CUDA CMK_AMPI_WITH_ROMIO CMK_MACOSX CMK_BLUEGENEQ CMK_BUILD_PYTHON
foreach(l CUDA_DIR BUILD_CUDA CMK_AMPI_WITH_ROMIO CMK_MACOSX CMK_BUILD_PYTHON
CMK_CHARMDEBUG CMK_COMPILER CMK_GDIR CMK_HAS_MALLOC_HOOK CMK_HAS_MMAP CMK_LIBJPEG
CMK_LUSTREAPI CMK_MULTICORE CMK_NO_BUILD_SHARED CMK_NO_PARTITIONS CMK_SHARED_SUF
CMK_SMP CMK_SUPPORTS_FSGLOBALS CMK_SUPPORTS_PIPGLOBALS CMK_SUPPORTS_PIEGLOBALS
Expand Down
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ of the `<options>` below.
| `mpi-linux-x86_64` | Linux | MPI | GNU compiler |
| `multicore-linux-x86_64` | Linux | Shared memory | GNU compiler |
| `multicore-darwin-x86_64` | macOS | Shared memory | Clang C++ compiler |
| `pamilrts-bluegeneq` | CNK | PAMI | BGClang C++ compiler |
| `gni-crayxc` | Linux | GNI | CC (whatever PrgEnv module is loaded) |
| `gni-crayxe` | Linux | GNI | CC (whatever PrgEnv module is loaded) |
| `verbs-linux-x86_64` | Linux | IB Verbs | GNU compiler |
Expand All @@ -120,7 +119,6 @@ To choose `<version>`, your choice is determined by two options:
* `linux-x86_64`: Linux with AMD64 64-bit x86 instructions
* `win-x86_64`: MS Windows with MS Visual C++ compiler
* `darwin-x86_64`: Apple macOS
* `bluegeneq`:IBM Blue Gene/Q
* `cray{xe/xc}`: Cray XE/XC Supercomputer
* `linux-ppc64le`: POWER/PowerPC

Expand Down
6 changes: 0 additions & 6 deletions benchmarks/ampi/pingpong/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,9 @@ pipe: pingpong-pipeline.c
$(CHARMC) pingpong-pipeline.c -o pingpong-pipe
$(MPICC) pingpong-pipeline.c -o pingpong-pipe-mpi

# This test runs longer on BGQ, so reduce the number of iterations run there:
test: all
ifeq ($(CMK_BLUEGENEQ),1)
$(call run, +p1 ./pingpong 16 1024 10 5 1 +vp2)
$(call run, +p2 ./pingpong 16 1024 10 5 1 +vp2)
else
$(call run, +p1 ./pingpong 16 1048576 100 10 1 +vp2)
$(call run, +p2 ./pingpong 16 1048576 100 10 1 +vp2)
endif
ifeq ($(CMK_USE_CMA),1)
$(call run, +p1 ./pingpong 16 1048576 100 10 1 +vp2 +noCMAForZC)
$(call run, +p2 ./pingpong 16 1048576 100 10 1 +vp2 +noCMAForZC)
Expand Down
21 changes: 0 additions & 21 deletions benchmarks/charm++/streamingAllToAll/ataTest.C
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ public:
iters = dataSizeMin / DATA_ITEM_SIZE;
allToAllGroup = CProxy_Participant::ckNew();

#if !CMK_BLUEGENEQ
int nDims = 2;
int dims[2] = {CkNumNodes(), CkNumPes() / CkNumNodes()};
CkPrintf("TEST 1: Using %dD TRAM Topology: %d %d\n",
Expand All @@ -59,26 +58,6 @@ public:
// }
// int dims[3] = {dim1, dim2, CkNumPes() / CkNumNodes()};
// CkPrintf("Topology: %d %d %d\n", dims[0], dims[1], dims[2]);
#else
TopoManager tmgr;

int nDims = 3;
int dims[3] = {tmgr.getDimNA() * tmgr.getDimNB(),
tmgr.getDimNC() * tmgr.getDimND() * tmgr.getDimNE(),
tmgr.getDimNT()};
CkPrintf("TEST 1: Using %dD TRAM Topology: %d %d %d\n",
nDims, dims[0], dims[1], dims[2]);

// Alternative TRAM topologies for Blue Gene/Q using Topology Manager
// int nDims = 4;
// int dims[4] = {tmgr.getDimNA() * tmgr.getDimNB(), tmgr.getDimNC(),
// tmgr.getDimND() * tmgr.getDimNE(), tmgr.getDimNT()};

// int nDims = 6;
// int dims[6] = {tmgr.getDimNA(), tmgr.getDimNB(), tmgr.getDimNC(),
// tmgr.getDimND() * tmgr.getDimNE(),
// tmgr.getDimNT() / 8, 8};
#endif

mainProxy = thisProxy;

Expand Down
11 changes: 0 additions & 11 deletions buildold
Original file line number Diff line number Diff line change
Expand Up @@ -835,17 +835,6 @@ then
echo "CMK_COMPILER_SUFFIX=\"${COMPILER#$i}\"" >> "$ConvSh"
echo '#include "'"cc-$i.h"'"' >> "$ConvHeader"
echo '. "$CHARMINC/'"cc-$i.sh"'"' >> "$ConvSh"
elif test `echo "$BASEVERSION" | grep -c "bluegeneq"` -gt 0
then
echo "Support for Blue Gene/Q targets has been deprecated as of Charm++ 7.0.0."
i="clang"
bgclang++11 --version
if [ $? -ne 0 ]; then
echo "ERROR: bgclang C/C++ compiler missing. Please load bgclang compilers, i.e. 'soft add +mpiwrapper-bgclang'."
exit 1
fi
echo '#include "'cc-$i.h'"' >> "$ConvHeader"
echo '. "$CHARMINC/'"cc-$i.sh"'"' >> "$ConvSh"
fi
if [[ ${#MYTMP[@]} -ne 0 ]]
then
Expand Down
4 changes: 2 additions & 2 deletions cmake/converse.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -198,8 +198,8 @@ add_library(ldb-spray src/conv-ldb/cldb.spray.C ${conv-ldb-h-sources})

# TopoManager
set(tmgr-c-sources src/util/topomanager/CrayNid.c)
set(tmgr-cxx-sources src/util/topomanager/TopoManager.C src/util/topomanager/BGQTorus.C)
set(tmgr-h-sources src/util/topomanager/TopoManager.h ${CMAKE_BINARY_DIR}/include/topomanager_config.h src/util/topomanager/XTTorus.h src/util/topomanager/BGQTorus.h)
set(tmgr-cxx-sources src/util/topomanager/TopoManager.C)
set(tmgr-h-sources src/util/topomanager/TopoManager.h ${CMAKE_BINARY_DIR}/include/topomanager_config.h src/util/topomanager/XTTorus.h)
file(WRITE ${CMAKE_BINARY_DIR}/include/topomanager_config.h "// empty\n" )

# Converse
Expand Down
2 changes: 1 addition & 1 deletion cmake/detect-features-fortran.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ if(CMK_CAN_LINK_FORTRAN)
endif()

# Fortran module names
set(CMK_MOD_NAME_ALLCAPS ${CMK_BLUEGENEQ})
set(CMK_MOD_NAME_ALLCAPS 0)
set(CMK_MOD_EXT mod)
2 changes: 1 addition & 1 deletion cmake/detect-features.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ endif()

# CMA
set(CMK_USE_CMA ${CMK_HAS_CMA})
if(NETWORK STREQUAL "multicore" OR NETWORK MATCHES "bluegeneq")
if(NETWORK STREQUAL "multicore")
set(CMK_USE_CMA 0)
endif()

Expand Down
2 changes: 0 additions & 2 deletions cmake/hwloc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,6 @@ if(CMK_MACOSX)
set(hwloc-objects "${hwloc-objects};${CMAKE_BINARY_DIR}/hwloc-prefix/src/hwloc-build/hwloc/topology-darwin.o")
elseif(CMK_WINDOWS)
set(hwloc-objects "${hwloc-objects};${CMAKE_BINARY_DIR}/hwloc-prefix/src/hwloc-build/hwloc/topology-windows.obj")
elseif(CMK_BLUEGENEQ)
set(hwloc-objects "${hwloc-objects};${CMAKE_BINARY_DIR}/hwloc-prefix/src/hwloc-build/hwloc/topology-bgq.o")
else() # Linux
set(hwloc-objects "${hwloc-objects};${CMAKE_BINARY_DIR}/hwloc-prefix/src/hwloc-build/hwloc/topology-linux.o")
set(hwloc-objects "${hwloc-objects};${CMAKE_BINARY_DIR}/hwloc-prefix/src/hwloc-build/hwloc/topology-hardwired.o")
Expand Down
7 changes: 2 additions & 5 deletions doc/charm++/manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ checkpoints.
Charm++ is a production-quality parallel programming system used by
multiple applications in science and engineering on supercomputers as
well as smaller clusters around the world. Currently the parallel
platforms supported by Charm++ are the IBM BlueGene/Q and OpenPOWER
platforms supported by Charm++ are OpenPOWER
systems, Cray XE, XK, and XC systems, Omni-Path and Infiniband clusters,
single workstations and networks of workstations (including x86 (running
Linux, Windows, MacOS)), etc. The communication protocols and
Expand Down Expand Up @@ -5302,7 +5302,6 @@ used.
============================= =============== ====================== =============== ========== ==========
Machine Network Build Architecture Intra Processor Intra Host Inter Host
============================= =============== ====================== =============== ========== ==========
Blue Gene/Q (Vesta) PAMI ``pamilrts-bluegeneq`` 4 MB 32 KB 256 KB
Cray XC30 (Edison) Aries ``gni-crayxc`` 1 MB 2 MB 2 MB
Cray XC30 (Edison) Aries ``mpi-crayxc`` 256 KB 8 KB 32 KB
Dell Cluster (Golub) Infiniband ``verbs-linux-x86_64`` 128 KB 2 MB 1 MB
Expand Down Expand Up @@ -11419,7 +11418,7 @@ where,

``TARGET ARCHITECTURE``
is the machine architecture one wants to build for such as
*netlrts-linux-x86_64*, *pamilrts-bluegeneq* etc.
*netlrts-linux-x86_64*, *multicore-darwin-arm8* etc.

``OPTIONS``
are additional options to the build process, e.g. *smp* is used to
Expand Down Expand Up @@ -11471,8 +11470,6 @@ appropriate choices for the build one wants to perform.
MPI with 64 bit Windows ``./build charm++ mpi-win-x86_64 --with-production -j8``
Net with 64 bit macOS (x86_64) ``./build charm++ netlrts-darwin-x86_64 --with-production -j8``
Net with 64 bit macOS (ARM64) ``./build charm++ netlrts-darwin-arm8 --with-production -j8``
Blue Gene/Q (bgclang compilers) ``./build charm++ pami-bluegeneq --with-production -j8``
Blue Gene/Q (bgclang compilers) ``./build charm++ pamilrts-bluegeneq --with-production -j8``
Cray XE6 ``./build charm++ gni-crayxe --with-production -j8``
Cray XK7 ``./build charm++ gni-crayxe-cuda --with-production -j8``
Cray XC40 ``./build charm++ gni-crayxc --with-production -j8``
Expand Down
2 changes: 1 addition & 1 deletion doc/faq/manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Yes.
Charm++ supports both shared-memory and distributed-memory machines,
SMPs and non-SMPs. In particular, we support serial machines, Windows
machines, Apple machines, ARM machines, clusters connected via Ethernet,
or Infiniband, IBM Power series and BlueGene/Q, Cray XC/XE/XK series,
or Infiniband, IBM Power series, Cray XC/XE/XK series,
and any machine that supports MPI. We normally do our development on
Linux workstations, and our testing on large parallel machines. Programs
written using Charm++ will run on any supported machine.
Expand Down
4 changes: 0 additions & 4 deletions doc/projections/manual.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1087,10 +1087,6 @@ communication characteristics:

- Number of bytes sent externally (physically) by entry methods

- Number of hops messages travelled before being received by an
entry methods (available only on trace logs generated on the Bluegene
machine).

.. figure:: fig/apoa1_512_CommTimeProfile.png
:name: communication-time
:width: 4in
Expand Down
11 changes: 0 additions & 11 deletions examples/charm++/topology/matmul3d/matmul3d.C
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,6 @@
#include "matmul3d.decl.h"
#include "matmul3d.h"
#include "TopoManager.h"
#if CMK_BLUEGENEP || CMK_VERSION_BLUEGENE
#include "essl.h"
#endif
#include "rand48_replacement.h"

Main::Main(CkArgMsg* m) {
Expand Down Expand Up @@ -294,18 +291,10 @@ void Compute::receiveC(float *data, int size, int who) {
void Compute::doWork() {
if(countA == num_chare_z-1 && countB == num_chare_x-1) {

#if CMK_BLUEGENEP || CMK_VERSION_BLUEGENE
const char trans = 'N';
const double alpha = 1.0;
const double beta = 0.0;

sgemm(&trans, &trans, blockDimX, blockDimZ, blockDimY, alpha, A, blockDimX, B, blockDimY, beta, C, blockDimX);
#else
for(int i=0; i<blockDimX; i++)
for(int j=0; j<blockDimY; j++)
for(int k=0; k<blockDimZ; k++)
C[i*blockDimZ+k] += A[i*blockDimY+j] * B[j*blockDimZ+k];
#endif

receiveC(&C[(thisIndex.y)*subBlockDimXy*blockDimZ], subBlockDimXy*blockDimZ, 0);
sendC();
Expand Down
35 changes: 5 additions & 30 deletions smart-build.pl
Original file line number Diff line number Diff line change
Expand Up @@ -112,27 +112,6 @@ sub promptUserYN {
}


# check for BG/Q

if($skip_choosing eq "false"){
my $BGQ_FLOOR = $ENV{'BGQ_FLOOR'};
if (not defined $BGQ_FLOOR) {
$BGQ_FLOOR = "/bgsys/drivers/ppcfloor";
}

my $bgq_found = system("which \"$BGQ_FLOOR/gnu-linux/bin/powerpc64-bgq-linux-cpp\" 2>/dev/null") / 256;

if ($bgq_found == 0) {
print "\nI found that you have a Blue Gene/Q toolchain available in your path.\nDo you want to build Charm++ targeting BG/Q? [Y/n]: ";
my $p = promptUserYN();
if($p eq "yes" || $p eq "default") {
$arch = "pamilrts-bluegeneq";
$skip_choosing = "true";
}
}
}


# check for Cray

if($skip_choosing eq "false"){
Expand Down Expand Up @@ -291,10 +270,9 @@ sub promptUserYN {
2) Infiniband (verbs)
3) Cray XE, XK
4) Cray XC
5) Blue Gene/Q
6) Intel Omni-Path (ofi)
7) PAMI
8) UCX
5) Intel Omni-Path (ofi)
6) PAMI
7) UCX
EOF

Expand All @@ -313,15 +291,12 @@ sub promptUserYN {
$arch = "gni-crayxc";
last;
} elsif($line eq "5"){
$arch = "pamilrts-bluegeneq";
last;
} elsif($line eq "6"){
$converse_network_type = "ofi";
last;
} elsif($line eq "7"){
} elsif($line eq "6"){
$converse_network_type = "pamilrts";
last;
} elsif($line eq "8"){
} elsif($line eq "7"){
$converse_network_type = "ucx";
last;
} else {
Expand Down
56 changes: 0 additions & 56 deletions src/arch/common/cc-bluegene.sh

This file was deleted.

24 changes: 0 additions & 24 deletions src/arch/mpi-bluegeneq/cc-clang.sh

This file was deleted.

Empty file removed src/arch/mpi-bluegeneq/cc-gcc.h
Empty file.

0 comments on commit 7b08f0f

Please sign in to comment.