Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 5 additions & 9 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -797,10 +797,6 @@ endmacro(vistle_install_headers)
configure_file(${CMAKE_CURRENT_LIST_DIR}/cmake/VistleConfig.cmake ${PROJECT_BINARY_DIR}/lib/cmake/vistle/VistleConfig.cmake COPYONLY)
install(FILES ${CMAKE_CURRENT_LIST_DIR}/cmake/VistleConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/vistle)

if(APPLE)
add_definitions(-DGL_SILENCE_DEPRECATION)
endif()

if(POLICY CMP0043)
# configuration (RelWithDebInfo, Debug, ...) dependent COMPILE_DEFINITIONS are not used
# - default to new behavior
Expand Down Expand Up @@ -1077,25 +1073,25 @@ endif()
vistle_find_package(PkgConfig)
vistle_find_package(ZSTD)

set(SZ3_FOUND FALSE)
set(USE_SZ3 FALSE)
if(CMAKE_VERSION VERSION_LESS 3.18)
message("Not building with SZ3 support: CMake older than 3.18")
set(USE_SZ3 FALSE)
elseif(NOT ZSTD_FOUND)
message("Not building with SZ3 support: no ZSTD")
set(USE_SZ3 FALSE)
elseif(NOT PkgConfig_FOUND)
message("Not building with SZ3 support: no PkgConfig")
set(USE_SZ3 FALSE)
else()
set(SZ3_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/lib/3rdparty/sz3/include;${PROJECT_BINARY_DIR}/lib/3rdparty/sz3/include")
set(SZ3_FOUND TRUE)
add_definitions(-DHAVE_SZ3)
include_directories(SYSTEM "${SZ3_INCLUDE_DIRS}")
set(USE_SZ3 TRUE)
endif()

set(OpenGL_GL_PREFERENCE LEGACY)
vistle_find_package(OpenGL)
if(APPLE)
target_compile_definitions(OpenGL::GL INTERFACE -DGL_SILENCE_DEPRECATION)
endif()

set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
Expand Down
5 changes: 1 addition & 4 deletions lib/3rdparty/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -249,13 +249,10 @@ endif()
# vistle_find_package(Eigen3 REQUIRED)
add_library(eigen INTERFACE)
add_library(Eigen3::Eigen ALIAS eigen)
set(EIGEN_DEFINITIONS "-DEIGEN_DEFAULT_DENSE_INDEX_TYPE=int")
set(EIGEN_DEFINITIONS "-DEIGEN_DEFAULT_DENSE_INDEX_TYPE=int" "-DEIGEN_DONT_PARALLELIZE") # also disable OpenMP for eigen
target_compile_definitions(eigen INTERFACE ${EIGEN_DEFINITIONS})
#set(EIGEN3_INCLUDE_PATH "${PROJECT_SOURCE_DIR}/lib/3rdparty")
target_include_directories(eigen INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>)
if(OpenMP_CXX_FOUND)
vistle_target_link_libraries(eigen INTERFACE OpenMP::OpenMP_CXX)
endif()
# Export as title case Eigen
set_target_properties(eigen PROPERTIES EXPORT_NAME Eigen)
vistle_export_library(eigen)
Expand Down
2 changes: 1 addition & 1 deletion lib/vistle/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ vistle_target_link_libraries(
PUBLIC
vtkm::cont)
target_link_libraries(vistle_core PRIVATE vistle_config)
target_link_libraries(vistle_core PRIVATE Eigen3::Eigen)
target_link_libraries(vistle_core PUBLIC Eigen3::Eigen)

if(ZFP_FOUND)
target_compile_definitions(vistle_core PRIVATE HAVE_ZFP)
Expand Down
131 changes: 41 additions & 90 deletions lib/vistle/core/archives_compress_sz3.cpp
Original file line number Diff line number Diff line change
@@ -1,14 +1,3 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// binary_oarchive.cpp:
// binary_iarchive.cpp:

// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)

// See http://www.boost.org for updates, documentation, and revision history.

#ifdef HAVE_SZ3
#include <SZ3/utils/Config.hpp>
#include <SZ3/api/sz.hpp>
Expand All @@ -22,9 +11,23 @@

namespace vistle {

#ifdef HAVE_SZ3
namespace detail {

template<>
char *compressSz3<void>(size_t &compressedSize, const void *src, const Index dim[3], const CompressionSettings &conf)
{
compressedSize = 0;
return nullptr;
}

template<>
bool decompressSz3<void>(void *dest, const buffer &compressed, const Index dim[3])
{
return false;
}

#ifdef HAVE_SZ3

SZ3::Config getConfig(const CompressionSettings &cs, const Index dim[3])
{
assert(cs.mode == SZ);
Expand Down Expand Up @@ -82,15 +85,8 @@ SZ3::Config getConfig(const CompressionSettings &cs, const Index dim[3])
return conf;
}

template<>
char *compressSz3<void>(size_t &compressedSize, const void *src, const Index dim[3], const CompressionSettings &conf)
{
compressedSize = 0;
return nullptr;
}

template<>
char *compressSz3<float>(size_t &compressedSize, const float *src, const Index dim[3], const CompressionSettings &conf)
template<typename T>
char *compressSz3(size_t &compressedSize, const T *src, const Index dim[3], const CompressionSettings &conf)
{
SZ3::Config szconf = getConfig(conf, dim);
compressedSize = 0;
Expand All @@ -102,87 +98,42 @@ char *compressSz3<float>(size_t &compressedSize, const float *src, const Index d
return buf;
}

template<>
char *compressSz3<double>(size_t &compressedSize, const double *src, const Index dim[3],
const CompressionSettings &conf)
{
SZ3::Config szconf = getConfig(conf, dim);
compressedSize = 0;
char *buf = SZ_compress(szconf, src, compressedSize);
#ifdef COMP_DEBUG
std::cerr << "compressSz3: compressed " << conf.num << " elements (dim " << int(conf.N) << "), size "
<< conf.num * sizeof(double) << " to " << compressedSize << " bytes" << std::endl;
#endif
return buf;
}

template<>
char *compressSz3<int32_t>(size_t &compressedSize, const int32_t *src, const Index dim[3],
const CompressionSettings &conf)
{
SZ3::Config szconf = getConfig(conf, dim);
compressedSize = 0;
char *buf = SZ_compress(szconf, src, compressedSize);
#ifdef COMP_DEBUG
std::cerr << "compressSz3: compressed " << conf.num << " elements (dim " << int(conf.N) << "), size "
<< conf.num * sizeof(int32_t) << " to " << compressedSize << " bytes" << std::endl;
#endif
return buf;
}

template<>
char *compressSz3<int64_t>(size_t &compressedSize, const int64_t *src, const Index dim[3],
const CompressionSettings &conf)
{
SZ3::Config szconf = getConfig(conf, dim);
compressedSize = 0;
char *buf = SZ_compress(szconf, src, compressedSize);
#ifdef COMP_DEBUG
std::cerr << "compressSz3: compressed " << conf.num << " elements (dim " << int(conf.N) << "), size "
<< conf.num * sizeof(int64_t) << " to " << compressedSize << " bytes" << std::endl;
#endif
return buf;
}

template<>
bool decompressSz3<void>(void *dest, const buffer &compressed, const Index dim[3])
{
return false;
}

template<>
bool decompressSz3<float>(float *dest, const buffer &compressed, const Index dim[3])
template<typename T>
bool decompressSz3(T *dest, const buffer &compressed, const Index dim[3])
{
SZ3::Config conf;
SZ_decompress(conf, const_cast<char *>(compressed.data()), compressed.size(), dest);
return true;
}

template<>
bool decompressSz3<double>(double *dest, const buffer &compressed, const Index dim[3])
#else
template<typename T>
char *compressSz3(size_t &compressedSize, const T *src, const Index dim[3], const CompressionSettings &conf)
{
SZ3::Config conf;
SZ_decompress(conf, const_cast<char *>(compressed.data()), compressed.size(), dest);
return true;
}

template<>
bool decompressSz3<int32_t>(int32_t *dest, const buffer &compressed, const Index dim[3])
{
SZ3::Config conf;
SZ_decompress(conf, const_cast<char *>(compressed.data()), compressed.size(), dest);
return true;
compressedSize = 0;
return nullptr;
}

template<>
bool decompressSz3<int64_t>(int64_t *dest, const buffer &compressed, const Index dim[3])
template<typename T>
bool decompressSz3(T *dest, const buffer &compressed, const Index dim[3])
{
SZ3::Config conf;
SZ_decompress(conf, const_cast<char *>(compressed.data()), compressed.size(), dest);
return true;
return false;
}
#endif // HAVE_SZ3

template char *compressSz3<float>(size_t &compressedSize, const float *src, const Index dim[3],
const CompressionSettings &conf);
template char *compressSz3<double>(size_t &compressedSize, const double *src, const Index dim[3],
const CompressionSettings &conf);
template char *compressSz3<int32_t>(size_t &compressedSize, const int32_t *src, const Index dim[3],
const CompressionSettings &conf);
template char *compressSz3<int64_t>(size_t &compressedSize, const int64_t *src, const Index dim[3],
const CompressionSettings &conf);

template bool decompressSz3<float>(float *dest, const buffer &compressed, const Index dim[3]);
template bool decompressSz3<double>(double *dest, const buffer &compressed, const Index dim[3]);
template bool decompressSz3<int32_t>(int32_t *dest, const buffer &compressed, const Index dim[3]);
template bool decompressSz3<int64_t>(int64_t *dest, const buffer &compressed, const Index dim[3]);
} // namespace detail
#endif // HAVE_SZ3

} // namespace vistle
36 changes: 13 additions & 23 deletions lib/vistle/core/archives_compress_sz3.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ namespace vistle {

namespace detail {

#ifdef HAVE_SZ3
template<typename T>
char *compressSz3(size_t &compressedSize, const T *src, const Index dim[3], const CompressionSettings &conf);

Expand All @@ -20,30 +19,21 @@ bool decompressSz3(T *dest, const buffer &compressed, const Index dim[3]);
template<>
char V_COREEXPORT *compressSz3<void>(size_t &compressedSize, const void *src, const Index dim[3],
const CompressionSettings &conf);
template<>
char V_COREEXPORT *compressSz3<float>(size_t &compressedSize, const float *src, const Index dim[3],
const CompressionSettings &conf);
template<>
char V_COREEXPORT *compressSz3<double>(size_t &compressedSize, const double *src, const Index dim[3],
const CompressionSettings &conf);
template<>
char V_COREEXPORT *compressSz3<int32_t>(size_t &compressedSize, const int32_t *src, const Index dim[3],
const CompressionSettings &conf);
template<>
char V_COREEXPORT *compressSz3<int64_t>(size_t &compressedSize, const int64_t *src, const Index dim[3],
const CompressionSettings &conf);
extern template char V_COREEXPORT *compressSz3<float>(size_t &compressedSize, const float *src, const Index dim[3],
const CompressionSettings &conf);
extern template char V_COREEXPORT *compressSz3<double>(size_t &compressedSize, const double *src, const Index dim[3],
const CompressionSettings &conf);
extern template char V_COREEXPORT *compressSz3<int32_t>(size_t &compressedSize, const int32_t *src, const Index dim[3],
const CompressionSettings &conf);
extern template char V_COREEXPORT *compressSz3<int64_t>(size_t &compressedSize, const int64_t *src, const Index dim[3],
const CompressionSettings &conf);

template<>
bool V_COREEXPORT decompressSz3<void>(void *dest, const buffer &compressed, const Index dim[3]);
template<>
bool V_COREEXPORT decompressSz3<float>(float *dest, const buffer &compressed, const Index dim[3]);
template<>
bool V_COREEXPORT decompressSz3<double>(double *dest, const buffer &compressed, const Index dim[3]);
template<>
bool V_COREEXPORT decompressSz3<int32_t>(int32_t *dest, const buffer &compressed, const Index dim[3]);
template<>
bool V_COREEXPORT decompressSz3<int64_t>(int64_t *dest, const buffer &compressed, const Index dim[3]);

#endif
extern template bool V_COREEXPORT decompressSz3<float>(float *dest, const buffer &compressed, const Index dim[3]);
extern template bool V_COREEXPORT decompressSz3<double>(double *dest, const buffer &compressed, const Index dim[3]);
extern template bool V_COREEXPORT decompressSz3<int32_t>(int32_t *dest, const buffer &compressed, const Index dim[3]);
extern template bool V_COREEXPORT decompressSz3<int64_t>(int64_t *dest, const buffer &compressed, const Index dim[3]);

} // namespace detail

Expand Down
Loading