Skip to content

Commit

Permalink
Release Appositionizer
Browse files Browse the repository at this point in the history
  • Loading branch information
Blue Brain Project HPC Team committed Nov 4, 2024
0 parents commit e81dd1b
Show file tree
Hide file tree
Showing 180 changed files with 22,073 additions and 0 deletions.
4 changes: 4 additions & 0 deletions .bbp-project.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
tools:
ClangFormat:
# >= 12.0.1 <12.0.2
version: ~=12.0.1
20 changes: 20 additions & 0 deletions .ci/test_circuit1k-merged.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
export BASE=$DATADIR/cellular/circuit-1k

echo "SLURM_CPUS_PER_TASK=$SLURM_CPUS_PER_TASK"
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
export MPI_OPENMP_INTEROP=Yes

srun appositionizer \
--tmp-dir=$PWD/tmp_dir \
--output=$PWD \
--appositionspace=axodendritic \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config_merged.json

set +x
hash module 2> /dev/null || . /etc/profile.d/modules.sh
. /gpfs/bbp.cscs.ch/apps/hpc/jenkins/config/modules.sh
module load unstable py-pytouchreader
module list
set -xeo pipefail
touchdiff --full --segment-precision 1 --distance-margin 1.0 --distance-precision=0.1 {$BASE/touches/binary,.}/touches.0 | head -n 500
16 changes: 16 additions & 0 deletions .ci/test_circuit1k-sonata.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export BASE=$DATADIR/cellular/circuit-1k

srun appositionizer \
--output=$PWD \
--output-population=All \
--appositionspace=axodendritic \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config.json

set +x
hash module 2> /dev/null || . /etc/profile.d/modules.sh
. /gpfs/bbp.cscs.ch/apps/hpc/jenkins/config/modules.sh
module load unstable py-functionalizer parquetk
module list
set -xeo pipefail
python ${SPACK_SOURCE_DIR}/tools/sonata_compare.py $BASE/touches/td_edges.h5 edges.h5
15 changes: 15 additions & 0 deletions .ci/test_circuit1k.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export BASE=$DATADIR/cellular/circuit-1k

srun appositionizer \
--output=$PWD \
--appositionspace=axodendritic \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config.json

set +x
hash module 2> /dev/null || . /etc/profile.d/modules.sh
. /gpfs/bbp.cscs.ch/apps/hpc/jenkins/config/modules.sh
module load unstable py-pytouchreader
module list
set -xeo pipefail
touchdiff --full --segment-precision 1 --distance-margin 1.0 --distance-precision=0.1 {$BASE/touches/binary,.}/touches.0 | head -n 500
15 changes: 15 additions & 0 deletions .ci/test_circuit2k.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
export BASE=$DATADIR/cellular/circuit-2k

srun appositionizer \
--output=$PWD \
--appositionspace=axodendritic \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config.json

set +x
hash module 2> /dev/null || . /etc/profile.d/modules.sh
. /gpfs/bbp.cscs.ch/apps/hpc/jenkins/config/modules.sh
module load unstable py-pytouchreader
module list
set -xeo pipefail
touchdiff --full --segment-precision 1 --distance-margin 1.0 --distance-precision=0.1 {$BASE/touches/binary,.}/touches.0 | head -n 500
12 changes: 12 additions & 0 deletions .ci/test_nodesets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
export BASE=$DATADIR/cellular/circuit-1k

srun appositionizer \
--output=$PWD \
--from-nodeset test \
--to-nodeset test \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config.json |& tee output

set +x

grep "Number of cells written: 50" output &> /dev/null || exit 1
14 changes: 14 additions & 0 deletions .ci/test_population.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
export BASE=$DATADIR/cellular/circuit-1k

srun appositionizer \
--output=$PWD \
--from head \
--to tail \
--appositionspace=axodendritic \
--recipe $BASE/bioname/recipe.json \
--circuit-config $BASE/circuit_config_multipop.json |& tee output

set +x

# Output for 550 edeges between the (original 1k) ids <50 and >=900
grep "Number of edeges written: 550" output &> /dev/null || exit 1
93 changes: 93 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: true
AlignEscapedNewlinesLeft: true
AlignOperands: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: true
BasedOnStyle: WebKit
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
AfterClass: false
AfterControlStatement: false
AfterEnum: false
AfterExternBlock: false
AfterFunction: false
AfterNamespace: false
AfterStruct: false
AfterUnion: false
BeforeCatch: false
BeforeElse: false
BreakBeforeBraces: Custom
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DerivePointerAlignment: false
DerivePointerBinding: true
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
- Regex: '^(<|"(gtest|isl|json)/)'
Priority: 3
- Regex: '.*'
Priority: 1
IncludeIsMainRegex: '$'
IndentCaseLabels: false
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
Language: Cpp
MaxEmptyLinesToKeep: 2
NamespaceIndentation: None
PenaltyBreakAssignment: 40
PenaltyBreakBeforeFirstCallParameter: 100
PenaltyBreakComment: 60
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
PointerBindsToType: true
ReflowComments: true
SortIncludes: true
SpaceAfterCStyleCast: true
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: false
SpaceBeforeInheritanceColon: false
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false # '< ' style
SpacesInContainerLiterals: false
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false # '(' style
SpacesInSquareBrackets: false
Standard: c++17
TabWidth: 4
UseTab: Never
...
2 changes: 2 additions & 0 deletions .gitexternals
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# -*- mode: cmake -*-
# CMake/common https://github.com/Eyescale/CMake.git 5397ec8
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
*.bak
.tox
docs/build
docs/source/_static/doxygen
.idea/
cmake-build-debug/
tags
spack-*
.spack*
.vscode
.ccls-cache
.bbp-project-venv
build*
deeps
12 changes: 12 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[submodule "deps/hpc-coding-conventions"]
path = deps/hpc-coding-conventions
url = https://github.com/BlueBrain/hpc-coding-conventions.git
[submodule "deps/cli11"]
path = deps/cli11
url = https://github.com/CLIUtils/CLI11.git
[submodule "deps/fmt"]
path = deps/fmt
url = https://github.com/fmtlib/fmt.git
[submodule "deps/nlohmann-json"]
path = deps/nlohmann-json
url = https://github.com/nlohmann/json.git
5 changes: 5 additions & 0 deletions .gitreview
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[gerrit]
host=bbpcode.epfl.ch
project=building/TouchDetector
defaultbranch=master
port=22
150 changes: 150 additions & 0 deletions CMake/config/CompilerFlagsHelpers.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
# CompilerFlagsHelpers.cmake
#
# set of Convenience functions for portable compiler flags
#
# License: BSD 3
#
# Copyright (c) 2016, Adrien Devresse All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this list of conditions
# and the following disclaimer.
#
# 1. Redistributions in binary form must reproduce the above copyright notice, this list of
# conditions and the following disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# 1. Neither the name of the copyright holder nor the names of its contributors may be used to
# endorse or promote products derived from this software without specific prior written
# permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

set(SUPPORTED_COMPILER_LANGUAGE_LIST "C;CXX")

# detect compiler
foreach(COMPILER_LANGUAGE ${SUPPORTED_COMPILER_LANGUAGE_LIST})

if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID STREQUAL "XL")
set(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_XLC ON)
elseif(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID STREQUAL "Intel")
set(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_ICC ON)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_MSVC)
elseif(${CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID} STREQUAL "Clang")
set(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_CLANG ON)
else(CMAKE_${COMPILER_LANGUAGE}_COMPILER_ID STREQUAL "GNU")
set(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_GCC ON)
endif()

endforeach()

foreach(COMPILER_LANGUAGE ${SUPPORTED_COMPILER_LANGUAGE_LIST})
# preset default
set(CMAKE_${COMPILER_LANGUAGE}_FORTIFY "")

# XLC compiler
if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_XLC)

# XLC -qinfo=all is awfully verbose on any platforms that use the GNU STL Enable by default only
# the relevant one
set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL "-qformat=all -qinfo=lan:trx:ret:zea:cmp:ret")

set(CMAKE_${COMPILER_LANGUAGE}_DEBUGINFO_FLAGS "-g")

set(CMAKE_${COMPILER_LANGUAGE}_OPT_NONE "-O0")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_NORMAL "-O2")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_AGGRESSIVE "-O3")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_FASTEST "-O5")

set(CMAKE_${COMPILER_LANGUAGE}_STACK_PROTECTION "-qstackprotect")

set(CMAKE_${COMPILER_LANGUAGE}_FORTIFY "")

set(CMAKE_${COMPILER_LANGUAGE}_POSITION_INDEPENDANT "-qpic=small")

set(CMAKE_${COMPILER_LANGUAGE}_VECTORIZE "-qhot")

# Microsoft compiler
elseif(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_MSVC)

set(CMAKE_${COMPILER_LANGUAGE}_DEBUGINFO_FLAGS "-Zi")

set(CMAKE_${COMPILER_LANGUAGE}_OPT_NONE "")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_NORMAL "-O2")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_AGGRESSIVE "-O2")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_FASTEST "-O2")

set(CMAKE_${COMPILER_LANGUAGE}_STACK_PROTECTION "-GS")

# enable by default on MSVC
set(CMAKE_${COMPILER_LANGUAGE}_POSITION_INDEPENDANT "")

# ICC intel
elseif(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_ICC)

set(CMAKE_${COMPILER_LANGUAGE}_OPT_NONE "-O0")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_NORMAL "-O2")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_AGGRESSIVE "-O3")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_FASTEST "-Ofast")

set(CMAKE_${COMPILER_LANGUAGE}_FORTIFY "-D_FORTIFY_SOURCE=2")
set(CMAKE_${COMPILER_LANGUAGE}_STACK_PROTECTION "-fstack-protector-strong")

# GCC, CLANG
elseif(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_CLANG OR CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_GCC)

set(CMAKE_${COMPILER_LANGUAGE}_WARNING_ALL "-Wall -Wextra")

set(CMAKE_${COMPILER_LANGUAGE}_DEBUGINFO_FLAGS "-g")

set(CMAKE_${COMPILER_LANGUAGE}_OPT_NONE "-O0")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_NORMAL "-O2")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_AGGRESSIVE "-O3")
set(CMAKE_${COMPILER_LANGUAGE}_OPT_FASTEST "-Ofast -march=native")

if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_GCC
AND (CMAKE_${COMPILER_LANGUAGE}_COMPILER_VERSION VERSION_GREATER "4.9.0"))
set(CMAKE_${COMPILER_LANGUAGE}_STACK_PROTECTION "-fstack-protector-strong")
else()
set(CMAKE_${COMPILER_LANGUAGE}_STACK_PROTECTION "-fstack-protector")
endif()

set(CMAKE_${COMPILER_LANGUAGE}_FORTIFY "-D_FORTIFY_SOURCE=2")

set(CMAKE_${COMPILER_LANGUAGE}_POSITION_INDEPENDANT "-fPIC")

set(CMAKE_${COMPILER_LANGUAGE}_VECTORIZE "-ftree-vectorize")

if(CMAKE_${COMPILER_LANGUAGE}_COMPILER_IS_GCC
AND (CMAKE_${COMPILER_LANGUAGE}_COMPILER_VERSION VERSION_GREATER "4.7.0"))
set(CMAKE_${COMPILER_LANGUAGE}_LINK_TIME_OPT "-flto")
endif()

if((CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^ppc")
OR (CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "^power"))
# ppc arch do not support -march= syntax
set(CMAKE_${COMPILER_LANGUAGE}_GEN_NATIVE "-mcpu=native")
else()
set(CMAKE_${COMPILER_LANGUAGE}_GEN_NATIVE "-march=native")
endif()

else() # rest of the world : Do nothing

endif()

# Common to all

# disable assert
set(CMAKE_${COMPILER_LANGUAGE}_DISABLE_ASSERT "-DNDEBUG")

endforeach()
Loading

0 comments on commit e81dd1b

Please sign in to comment.