Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
38ff610
Testing Added and Flattening message buffer
eessmann Aug 16, 2024
f1c5ea4
MPI AlltoAll used for communicating node_ids
eessmann Aug 16, 2024
99a0990
Initial implementation
eessmann Aug 19, 2024
b2a497a
Fixed Memory leak
eessmann Sep 2, 2024
18599ba
Possible fix
eessmann Sep 3, 2024
6d0d468
MPI_Alltoallv is silly function
eessmann Sep 3, 2024
fcc254c
Removed at()
eessmann Sep 3, 2024
358852d
Memory leak found and fixed
eessmann Sep 3, 2024
289ac3a
parhip works
eessmann Sep 3, 2024
4ca1871
MPI to C data mapping
eessmann Sep 4, 2024
f1401d7
mpi_pack fixed
eessmann Sep 4, 2024
04ef612
Unneeded constructors and destructors removed
eessmann Sep 4, 2024
e10b734
Update parallel_contraction.cpp
eessmann Sep 6, 2024
b5c9655
Cray doesn't have spans
eessmann Sep 17, 2024
100bce2
Cray cannot deduce template types
eessmann Sep 17, 2024
e0bf6ee
Testing off by default
eessmann Sep 17, 2024
446adf1
Update parallel_contraction.cpp
eessmann Sep 17, 2024
10aca3c
Enable testing, add {cinttypes}, and update CRAY-C MPI handling
eessmann Sep 20, 2024
1e57ba8
Clean up formatting and adding documentation
eessmann Sep 20, 2024
7d6d3a0
Removed original implementation
eessmann Sep 23, 2024
03631d4
Fixed CMake so that flags work correctly
eessmann Sep 23, 2024
9d168b8
Removed unused mpi_tools::alltoallv
eessmann Sep 23, 2024
42664b8
Removing Duplicated function from class header
eessmann Sep 23, 2024
f403eca
Custom MPI Datatypes
eessmann Sep 25, 2024
34973f3
hashed graph updated
eessmann Sep 26, 2024
1e1fccc
Update CMakeLists.txt
eessmann Sep 26, 2024
b3c2a5d
WIP on mpi-collective
eessmann Sep 26, 2024
4e4347b
Isolated OpenMP
eessmann Sep 26, 2024
7d9b689
Custom type fix
eessmann Sep 27, 2024
0434215
Added reflection and custom datatypes fixed
eessmann Sep 30, 2024
776ac9b
Clean up
eessmann Sep 30, 2024
84935f7
All_to_all return type fixed
eessmann Sep 30, 2024
0784ac6
Fixed MPI types
eessmann Sep 30, 2024
bca00bf
Cleaning up types
eessmann Sep 30, 2024
afbbc03
MPI type cleanup working
eessmann Oct 2, 2024
e3b5263
Tidy up of mutex locks
eessmann Oct 3, 2024
2b57658
Added LTO
eessmann Oct 3, 2024
2781b49
Fixed include
eessmann Oct 3, 2024
85e6336
Fixed tests
eessmann Oct 3, 2024
02e2d71
Fixing concept warnings
eessmann Oct 3, 2024
005ebc8
Fixed handle leak
eessmann Oct 3, 2024
75ca671
Add Dev container for test
eessmann Oct 4, 2024
622df10
Fixing ODR issues
eessmann Oct 4, 2024
e694145
Linking fixed
eessmann Oct 4, 2024
6ab1d15
Sanitisers
eessmann Oct 7, 2024
338844f
Fixing formating and clang-tidy
eessmann Oct 7, 2024
edd22a5
Cleaning up
eessmann Oct 7, 2024
0f0afe0
Compiles on Archer
eessmann Oct 9, 2024
668838f
Namespace added
eessmann Oct 11, 2024
dfe22ab
Clang-tidy errors fixed
eessmann Oct 11, 2024
84d9b36
Parhip namespace
eessmann Oct 11, 2024
728dd85
Unity builds working
eessmann Oct 11, 2024
e6404d4
Fixing compiling flags
eessmann Oct 15, 2024
3f974a2
Project setup macro
eessmann Oct 15, 2024
d4ba62a
cmake formatted
eessmann Oct 15, 2024
95b4c79
Added options throughout
eessmann Oct 15, 2024
aac365a
Error reverted
eessmann Oct 15, 2024
4447fa3
Ranged-based loops
eessmann Oct 15, 2024
ad9e832
LTO on Cray
Oct 16, 2024
ac05b4f
Project setup macro
eessmann Oct 16, 2024
5c5caca
Testing off for caliper run
eessmann Oct 16, 2024
d835659
No more unity
eessmann Oct 17, 2024
9417340
No Warning in release mode
eessmann Oct 17, 2024
382c0c6
Edge list converter fixed
eessmann Oct 17, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
BasedOnStyle: Chromium
TabWidth: 2
IndentWidth: 2
SortIncludes: CaseInsensitive
Language: Cpp
Standard: c++20
QualifierAlignment: Right
30 changes: 30 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
Checks: "*,
-abseil-*,
-altera-*,
-android-*,
-fuchsia-*,
-google-*,
-llvm*,
-modernize-use-trailing-return-type,
-zircon-*,
-readability-else-after-return,
-readability-static-accessed-through-instance,
-readability-avoid-const-params-in-decls,
-cppcoreguidelines-non-private-member-variables-in-classes,
-misc-non-private-member-variables-in-classes,
"
WarningsAsErrors: ''
HeaderFilterRegex: ''
FormatStyle: none

CheckOptions:
- key: readability-identifier-length.IgnoredVariableNames
value: 'x|y|z|i|j|k|G|Q'
- key: readability-identifier-length.IgnoredParameterNames
value: 'x|y|z|i|j|k|G|Q'





23 changes: 23 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM mcr.microsoft.com/devcontainers/cpp:1-ubuntu-24.04

ARG REINSTALL_CMAKE_VERSION_FROM_SOURCE="none"

# Optionally install the cmake for vcpkg
COPY ./reinstall-cmake.sh /tmp/

RUN if [ "${REINSTALL_CMAKE_VERSION_FROM_SOURCE}" != "none" ]; then \
chmod +x /tmp/reinstall-cmake.sh && /tmp/reinstall-cmake.sh ${REINSTALL_CMAKE_VERSION_FROM_SOURCE}; \
fi \
&& rm -f /tmp/reinstall-cmake.sh

RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install ubuntu-dbgsym-keyring \
&& printf "deb http://ddebs.ubuntu.com noble main restricted universe multiverse\ndeb http://ddebs.ubuntu.com noble-updates main restricted universe multiverse\ndeb http://ddebs.ubuntu.com noble-proposed main restricted universe multiverse" | \
tee -a /etc/apt/sources.list.d/ddebs.list

# [Optional] Uncomment this section to install additional vcpkg ports.
RUN su vscode -c "export VCPKG_FORCE_SYSTEM_BINARIES=arm && ${VCPKG_ROOT}/vcpkg install catch2 fmt metis"

# [Optional] Uncomment this section to install additional packages.
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install gfortran openmpi-bin openmpi-bin-dbgsym libopenmpi-dev libopenmpi3t64 ninja-build clang-tidy cppcheck iwyu
27 changes: 27 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/cpp
{
"name": "C++",
"build": {
"dockerfile": "Dockerfile"
},

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "gcc -v",

// Configure tool-specific properties.
"customizations" : {
"jetbrains" : {
"backend" : "CLion"
}
},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
59 changes: 59 additions & 0 deletions .devcontainer/reinstall-cmake.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
#!/usr/bin/env bash
#-------------------------------------------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
#-------------------------------------------------------------------------------------------------------------
#
set -e

CMAKE_VERSION=${1:-"none"}

if [ "${CMAKE_VERSION}" = "none" ]; then
echo "No CMake version specified, skipping CMake reinstallation"
exit 0
fi

# Cleanup temporary directory and associated files when exiting the script.
cleanup() {
EXIT_CODE=$?
set +e
if [[ -n "${TMP_DIR}" ]]; then
echo "Executing cleanup of tmp files"
rm -Rf "${TMP_DIR}"
fi
exit $EXIT_CODE
}
trap cleanup EXIT


echo "Installing CMake..."
apt-get -y purge --auto-remove cmake
mkdir -p /opt/cmake

architecture=$(dpkg --print-architecture)
case "${architecture}" in
arm64)
ARCH=aarch64 ;;
amd64)
ARCH=x86_64 ;;
*)
echo "Unsupported architecture ${architecture}."
exit 1
;;
esac

CMAKE_BINARY_NAME="cmake-${CMAKE_VERSION}-linux-${ARCH}.sh"
CMAKE_CHECKSUM_NAME="cmake-${CMAKE_VERSION}-SHA-256.txt"
TMP_DIR=$(mktemp -d -t cmake-XXXXXXXXXX)

echo "${TMP_DIR}"
cd "${TMP_DIR}"

curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_BINARY_NAME}" -O
curl -sSL "https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/${CMAKE_CHECKSUM_NAME}" -O

sha256sum -c --ignore-missing "${CMAKE_CHECKSUM_NAME}"
sh "${TMP_DIR}/${CMAKE_BINARY_NAME}" --prefix=/opt/cmake --skip-license

ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
ln -s /opt/cmake/bin/ctest /usr/local/bin/ctest
10 changes: 10 additions & 0 deletions .gersemirc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
cache: true
color: false
definitions: [cmake]
indent: 4
line_length: 80
list_expansion: favour-inlining
quiet: false
unsafe: false
warn_about_unknown_commands: true
workers: max
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
.cache/
build/
deploy/
.idea
**/.DS_Store
cmake-build-*
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "extern/caliper"]
path = extern/caliper
url = https://github.com/LLNL/Caliper.git
Loading
Loading