Skip to content

Commit

Permalink
Merge tag '1.0.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
ibrodkin committed Jun 7, 2024
2 parents bc39458 + 6573d45 commit af91b48
Show file tree
Hide file tree
Showing 382 changed files with 40,825 additions and 10,997 deletions.
3 changes: 0 additions & 3 deletions .gitmodules

This file was deleted.

33 changes: 33 additions & 0 deletions CI/docker/chornolog.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Use scs-lab/base:1.0 as base image
FROM spack/ubuntu-jammy:latest as coeus-builder
ENV DOCKER_TAG=0.2

# What we want to install and how we want to install it
# is specified in a manifest file (spack.yaml)
RUN mkdir /opt/spack-environment \
&& (echo "spack:" \
&& echo " specs:" \
&& echo " - [email protected]" \
&& echo " - [email protected]~fortran +verbs +argobots ^[email protected] fabrics=mlx,rxd,rxm,shm,sockets,tcp,udp,verbs" \
&& echo " - [email protected] ^[email protected] fabrics=mlx,rxd,rxm,shm,sockets,tcp,udp,verbs" \
&& echo " - [email protected] ^[email protected] fabrics=mlx,rxd,rxm,shm,sockets,tcp,udp,verbs" \
&& echo " - [email protected]~boostsys ^[email protected] fabrics=mlx,rxd,rxm,shm,sockets,tcp,udp,verbs" \
&& echo " - [email protected]" \
&& echo " concretizer:" \
&& echo " unify: true" \
&& echo " config:" \
&& echo " install_tree: /opt/software" \
&& echo " view: /opt/view") > /opt/spack-environment/spack.yaml

# Install the software, remove unnecessary deps
RUN cd /opt/spack-environment && spack env activate . && spack install --fail-fast && spack gc -y

FROM ubuntu:22.04
ENV DEBIAN_FRONTEND="noninteractive"

RUN apt-get update -y && apt-get upgrade -y
RUN apt-get install -y pkg-config cmake build-essential environment-modules gfortran git python3 gdb

COPY --from=coeus-builder /opt/spack-environment /opt/spack-environment
COPY --from=coeus-builder /opt/software /opt/software
COPY --from=coeus-builder /opt/view /usr
15 changes: 15 additions & 0 deletions CI/docker/chronolog-ssh.dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM scslab/chronolog:0.1
ENV DEBIAN_FRONTEND="noninteractive"

RUN apt-get install -y openssh-server sudo

RUN passwd -d root

RUN mkdir /var/run/sshd
RUN sed -i'' -e's/^#PermitRootLogin prohibit-password$/PermitRootLogin yes/' /etc/ssh/sshd_config \
&& sed -i'' -e's/^#PasswordAuthentication yes$/PasswordAuthentication yes/' /etc/ssh/sshd_config \
&& sed -i'' -e's/^#PermitEmptyPasswords no$/PermitEmptyPasswords yes/' /etc/ssh/sshd_config \
&& sed -i'' -e's/^UsePAM yes/UsePAM no/' /etc/ssh/sshd_config

EXPOSE 22
CMD ["/usr/bin/sudo", "/usr/sbin/sshd", "-D"]
2 changes: 0 additions & 2 deletions CI/enviroment/loads
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ module load boost-1.77.0-gcc-9.3.0-hdotzut
module load bzip2-1.0.8-gcc-9.3.0-gk3mz66
# [email protected]%[email protected]+optimize+pic+shared arch=linux-ubuntu20.04-zen2
module load zlib-1.2.11-gcc-9.3.0-whj3n7m
# [email protected]%[email protected]~bz2+lz4+shared~snappy+static~tbb+zlib~zstd patches=9a8833a arch=linux-ubuntu20.04-zen2
module load rocksdb-6.20.3-gcc-9.3.0-hqiuiit
# [email protected]%[email protected]~ipo build_type=RelWithDebInfo arch=linux-ubuntu20.04-zen2
module load gflags-2.2.2-gcc-9.3.0-ox4tyrq
# [email protected]%[email protected] libs=shared,static arch=linux-ubuntu20.04-zen2
Expand Down
102 changes: 0 additions & 102 deletions CI/enviroment/spack.lock
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,6 @@
{
"hash": "wtle6ecnkjzrxxjgdjyighedzjmua5kr",
"spec": "boost"
},
{
"hash": "ggx2rpxnirkj2l2zfgxagqcmnsdjlgka",
"spec": "rocksdb"
}
],
"concrete_specs": {
Expand Down Expand Up @@ -1829,104 +1825,6 @@
],
"hash": "hdotzutcx2a4pp5cmkbc3bw5g34xwu4x"
},
"ggx2rpxnirkj2l2zfgxagqcmnsdjlgka": {
"name": "rocksdb",
"version": "6.20.3",
"arch": {
"platform": "linux",
"platform_os": "ubuntu20.04",
"target": {
"name": "zen2",
"vendor": "AuthenticAMD",
"features": [
"abm",
"aes",
"avx",
"avx2",
"bmi1",
"bmi2",
"clflushopt",
"clwb",
"clzero",
"cx16",
"f16c",
"fma",
"fsgsbase",
"mmx",
"movbe",
"pclmulqdq",
"popcnt",
"rdseed",
"sse",
"sse2",
"sse4_1",
"sse4_2",
"sse4a",
"ssse3",
"xsavec",
"xsaveopt"
],
"generation": 0,
"parents": [
"zen"
]
}
},
"compiler": {
"name": "gcc",
"version": "9.3.0"
},
"namespace": "builtin",
"parameters": {
"bz2": false,
"lz4": true,
"patches": [
"9a8833a09a0d6fb7b3fcf77e445b78ca86fb0a3638c1b9ef3716ff476eb6a82c"
],
"shared": true,
"snappy": false,
"static": true,
"tbb": false,
"zlib": true,
"zstd": false,
"cflags": [],
"cppflags": [],
"cxxflags": [],
"fflags": [],
"ldflags": [],
"ldlibs": []
},
"patches": [
"9a8833a09a0d6fb7b3fcf77e445b78ca86fb0a3638c1b9ef3716ff476eb6a82c"
],
"dependencies": [
{
"name": "gflags",
"build_hash": "vvjkbnwku7n6p2e5fjunybqwozblv7wp",
"type": [
"build",
"link"
]
},
{
"name": "lz4",
"build_hash": "6m7dct2pygnn4iob47pdbhn6dxfhiryd",
"type": [
"build",
"link"
]
},
{
"name": "zlib",
"build_hash": "whj3n7mok67wqtm5dofead56i6krevxc",
"type": [
"build",
"link"
]
}
],
"hash": "hqiuiit4ltk2mlp63bjfxrbobjeugjji"
},
"vvjkbnwku7n6p2e5fjunybqwozblv7wp": {
"name": "gflags",
"version": "2.2.2",
Expand Down
2 changes: 1 addition & 1 deletion CI/enviroment/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,5 @@
# configuration settings.
spack:
# add package specs to the `specs` list
specs: [cmake, mpich~fortran, boost, rocksdb]
specs: [ cmake, mpich~fortran, boost ]
view: true
99 changes: 50 additions & 49 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
cmake_minimum_required(VERSION 3.17)
cmake_minimum_required(VERSION 3.25)

# Set a consistent MACOSX_RPATH default across all CMake versions.
if(NOT DEFINED CMAKE_MACOSX_RPATH)
set(CMAKE_MACOSX_RPATH 0)
endif()


project(ChronoLog LANGUAGES CXX)

#------------------------------------------------------------------------------
# Version information
#------------------------------------------------------------------------------
set(CHRONOLOG_VERSION_MAJOR "0")
set(CHRONOLOG_VERSION_MINOR "1")
set(CHRONOLOG_VERSION_MINOR "7")
set(CHRONOLOG_VERSION_PATCH "0")
set(CHRONOLOG_PACKAGE "ChronoLog")
set(CHRONOLOG_PACKAGE_NAME "CHRONOLOG")
Expand All @@ -24,6 +25,9 @@ set(CHRONOLOG_PACKAGE_TARNAME "${CHRONOLOG_PACKAGE}")
#------------------------------------------------------------------------------
# Setup install and output Directories
#------------------------------------------------------------------------------
#if(NOT CMAKE_INSTALL_PREFIX)
set(CMAKE_INSTALL_PREFIX /home/$ENV{USER}/chronolog)
#endif()
if(NOT CHRONOLOG_INSTALL_BIN_DIR)
set(CHRONOLOG_INSTALL_BIN_DIR ${CMAKE_INSTALL_PREFIX}/bin)
endif()
Expand All @@ -42,8 +46,8 @@ endif()
#------------------------------------------------------------------------------
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
message(FATAL_ERROR
"ChronoLog requires an out of source build. "
"Please create a separate binary directory and run CMake there.")
"ChronoLog requires an out of source build. "
"Please create a separate binary directory and run CMake there.")
endif()

#------------------------------------------------------------------------------
Expand Down Expand Up @@ -84,27 +88,28 @@ option(CHRONOLOG_ENABLE_DOXYGEN "Enable Doxygen documentation generation." OFF)
# add_compile_options(-Wextra)
#endif()

#set(CMAKE_BUILD_TYPE "Debug")
# Change some compilation flags depending on the build type
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
message("Compiling ChronoLog in Debug Mode")
# add_compile_options(-g3)
# add_compile_options(-g3)
add_compile_options(-O0)
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -O0 -g")

#if (HERMES_USE_ADDRESS_SANITIZER)
#if (CHRONOLOG_USE_ADDRESS_SANITIZER)
# add_compile_options(-fsanitize=address)
#endif()

#if (HERMES_USE_THREAD_SANITIZER)
#if (CHRONOLOG_USE_THREAD_SANITIZER)
# add_compile_options(-fsanitize=thread)
#endif()

#if (HERMES_USE_THREAD_SANITIZER AND HERMES_USE_ADDRESS_SANITIZER)
#if (CHRONOLOG_USE_THREAD_SANITIZER AND CHRONOLOG_USE_ADDRESS_SANITIZER)
# message(FATAL_ERROR "Cannont use -fsanitize=address and -fsanitize=thread "
# "at the same time")
#endif()
else()
else()
message("Compiling ChronoLog in release Mode")
add_compile_options(-O3 -lm)
#add_compile_options(-Wno-switch-unreachable -Wno-return-type)
Expand All @@ -115,13 +120,13 @@ endif()
#------------------------------------------------------------------------------
if(CHRONOLOG_ENABLE_COVERAGE)
if(NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
message(FATAL_ERROR "Use code coverage with debug mode")
message(FATAL_ERROR "Use code coverage with debug mode")
endif()
endif()


#------------------------------------------------------------------------------
# Transform flags from boolean to meaningfull usages.
# Transform flags from boolean to meaningful usages.
#------------------------------------------------------------------------------
if(BUILD_SHARED_LIBS)
set(CHRONOLOG_LIBTYPE SHARED)
Expand All @@ -133,30 +138,22 @@ endif()
#-----------------------------------------------------------------------------
# Dependencies common to all subdirectories
#-----------------------------------------------------------------------------
find_package(MPI REQUIRED COMPONENTS CXX)
find_package(Boost REQUIRED)
find_package(Thallium REQUIRED)
#find_library(ROCKSDB_LIB rocksdb)
#if(NOT ROCKSDB_LIB)
# message(FATAL_ERROR "rocksdb is required")
#else()
# find_path(ROCKDSB_INCLUDE rocksdb)
# MESSAGE(STATUS "Found rocksdb at: ${ROCKSDB_INCLUDE}")
#endif()


#-----------------------------------------------------------------------------
# Coverage
#-----------------------------------------------------------------------------
if(CHRONOLOG_ENABLE_COVERAGE)
set(COVERAGE_FLAGS "-fprofile-arcs -ftest-coverage" CACHE STRING
"Flags to the coverage program to perform coverage inspection")
"Flags to the coverage program to perform coverage inspection")
mark_as_advanced(COVERAGE_FLAGS)

macro(set_coverage_flags target)
set_target_properties(${target}
PROPERTIES
COMPILE_FLAGS ${COVERAGE_FLAGS}
LINK_FLAGS ${COVERAGE_FLAGS}
)
PROPERTIES
COMPILE_FLAGS ${COVERAGE_FLAGS}
LINK_FLAGS ${COVERAGE_FLAGS}
)
endmacro()
endif()

Expand All @@ -170,27 +167,27 @@ if(CHRONOLOG_ENABLE_DOXYGEN)
include(UseDoxygenDoc)

add_doxygen_doc(
BUILD_DIR
${CMAKE_CURRENT_BINARY_DIR}/_build
DOXY_FILE
${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in
TARGET_NAME
dox
COMMENT
"HTML documentation"
BUILD_DIR
${CMAKE_CURRENT_BINARY_DIR}/_build
DOXY_FILE
${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in
TARGET_NAME
dox
COMMENT
"HTML documentation"
)
endif()

#-----------------------------------------------------------------------------
# Linting
#-----------------------------------------------------------------------------
add_custom_target(lint COMMAND cpplint --recursive
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/build
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/cmake-build-debug
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/external_libs
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/doc
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/CI
${CMAKE_CURRENT_SOURCE_DIR} )
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/build
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/cmake-build-debug
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/external_libs
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/doc
--exclude=${CMAKE_CURRENT_SOURCE_DIR}/CI
${CMAKE_CURRENT_SOURCE_DIR})

#-----------------------------------------------------------------------------
# Source
Expand All @@ -200,19 +197,18 @@ if(CHRONOLOG_BUILD_TESTING)
include(CTest)
endif()

# External header only libraries
add_subdirectory(external_libs)

add_subdirectory(tools)

# ChronoVisor
add_subdirectory(ChronoAPI)
# ChronoLog client library
add_subdirectory(Client)

# ChronoVisor
add_subdirectory(ChronoVisor)

# ChronoLog client library
add_subdirectory(Client)
# ChronoKeeper
add_subdirectory(ChronoKeeper)
add_subdirectory(ChronoGrapher)

# ChronoStore
add_subdirectory(ChronoStore)

# custom
add_custom_target(make_all cd ${CMAKE_BINARY_DIR} && make)
Expand All @@ -222,3 +218,8 @@ if(CHRONOLOG_BUILD_TESTING)
enable_testing()
add_subdirectory(test)
endif()

#if(CHRONOLOG_ENABLE_PYTHON_BINDINGS)
message("Python binding enabled")
add_subdirectory(python_client)
#endif()
Loading

0 comments on commit af91b48

Please sign in to comment.