Skip to content

Commit

Permalink
Merge pull request #19493 from laraPPr/20240104155546_new_pr_Boost.MP…
Browse files Browse the repository at this point in the history
…I1830

{devel,phys}[foss/2022b,gompi/2022b] Boost.MPI v1.81.0, Block v1.5.3-20200525
  • Loading branch information
boegel authored Jan 10, 2024
2 parents c4ee904 + a2eb9d3 commit c01811a
Show file tree
Hide file tree
Showing 3 changed files with 236 additions and 0 deletions.
56 changes: 56 additions & 0 deletions easybuild/easyconfigs/b/Block/Block-1.5.3-20200525-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
easyblock = 'MakeCp'

name = 'Block'
version = '1.5.3-20200525'
_commit = 'f95317b08043b7c531289576d59ad74a6d920741'

homepage = 'https://sanshar.github.io/Block/'
description = """Block implements the density matrix renormalization group (DMRG) algorithm for
quantum chemistry."""

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'cstd': 'c++11', 'pic': True}

# Version 1.5 is a major rewrite of Block that was named at some point StackBlock
# sources are available in sanshar/StackBlock
# sources at sanshar/Block@b0e3671aad and pyscf/Block@db27636b76 correspond to version 1.1.1
source_urls = ['https://github.com/sanshar/StackBlock/archive']
sources = [{'download_filename': '%s.tar.gz' % _commit, 'filename': '%(version)s.tar.gz'}]
patches = [
'Block-1.5.3_use-eb-environment.patch',
'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch',
'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch'
]
checksums = [
{'1.5.3-20200525.tar.gz': '8d793c5e460d7747a0adcb06ce4b457c6750cf2d42cead1d060db8b44643c3b1'},
{'Block-1.5.3_use-eb-environment.patch': '7f3e8a52f28d251441d20dfde1f9cb8cdc0c34216defab61cc6980e540a6cf60'},
{'Block-1.5.3_replace_mpi_cxx_binds_with_boost_mpi.patch':
'f53f1f88cb7b12ab38d1313f93a9bbd31c745dca1beca7a8d51d00e0ae4e762f'},
{'Block-1.5.3_resolve_deprecated_Bind_placeholder.patch':
'51d692f294e800e0a9e027ef35bf761612ecb9efe77ddb378ec973b55e39a1e8'},
]

dependencies = [
('Boost.MPI', '1.81.0'),
]

buildopts = [
# Multi-threaded build (block.spin_adapted-serial)
'OPENMP="yes" EXECUTABLE="block.spin_adapted-serial"',
# MPI build (block.spin_adapted)
'USE_MPI="yes"',
]

files_to_copy = [(['block.spin_adapted*'], 'bin')]

sanity_check_paths = {
'files': ['bin/block.spin_adapted', 'bin/block.spin_adapted-serial'],
'dirs': [],
}

sanity_check_commands = [
"block.spin_adapted-serial --version",
"%(mpi_cmd_prefix)s block.spin_adapted --version",
]

moduleclass = 'phys'
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
resolve Error: "pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior."
define BOOST_BIND_GLOBAL_PLACEHOLDERS
replace #include <boost/bind.hpp> with #include <boost/bind/bind.hpp>,
replace copy_option::overwrite_if_exists with copy_options::overwrite_existing
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/genetic/GAOptimize.C StackBlock-f95317b08043b7c531289576d59ad74a6d920741/genetic/GAOptimize.C
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/genetic/GAOptimize.C 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/genetic/GAOptimize.C 2024-01-04 15:22:29.874336000 +0100
@@ -9,7 +9,7 @@
using namespace std;

#include <boost/function.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>

#ifndef SERIAL
#include <boost/mpi.hpp>
@@ -18,6 +18,7 @@

#include <newmat.h>
#include <newmatutils.h>
+#include <functional>

namespace genetic
{
@@ -58,7 +59,7 @@
mpi::broadcast(world, ksum, 0);
#endif

- Cell::Evaluate = boost::bind(genetic::Evaluate, 1.0/ksum, gainput.exponent, _1, K);
+ Cell::Evaluate = boost::bind(genetic::Evaluate, 1.0/ksum, gainput.exponent, std::placeholders::_1, K);
Cell best;
#ifndef SERIAL
int ntask = 1 + gainput.max_community / world.size();
@@ -125,7 +126,7 @@
mpi::broadcast(world, ksum, 0);
#endif

- Cell::Evaluate = boost::bind(genetic::Evaluate, 1.0/ksum, gainput.exponent, _1, K);
+ Cell::Evaluate = boost::bind(genetic::Evaluate, 1.0/ksum, gainput.exponent, std::placeholders::_1, K);
Cell best;
#ifndef SERIAL
int ntask = 1 + gainput.max_community / world.size();
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/genetic/GAOptimize.h StackBlock-f95317b08043b7c531289576d59ad74a6d920741/genetic/GAOptimize.h
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/genetic/GAOptimize.h 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/genetic/GAOptimize.h 2024-01-04 15:11:37.071030036 +0100
@@ -1,6 +1,8 @@
#ifndef GA_OPTIMIZE_H
#define GA_OPTIMIZE_H

+#define BOOST_BIND_GLOBAL_PLACEHOLDERS
+
#include <fstream>
#include "Cell.h"

diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/modules/npdm/npdm_permutations.C StackBlock-f95317b08043b7c531289576d59ad74a6d920741/modules/npdm/npdm_permutations.C
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/modules/npdm/npdm_permutations.C 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/modules/npdm/npdm_permutations.C 2024-01-04 15:32:31.035358000 +0100
@@ -13,6 +13,8 @@
#include "Stackspinblock.h"
#include "pario.h"

+#include <set>
+
namespace SpinAdapted{

//===========================================================================================================================================================
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/StackMatrix.h StackBlock-f95317b08043b7c531289576d59ad74a6d920741/StackMatrix.h
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/StackMatrix.h 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/StackMatrix.h 2024-01-04 13:51:30.872835728 +0100
@@ -1,6 +1,8 @@
#ifndef SPIN_STACKMATRIX_HEADER
#define SPIN_STACKMATRIX_HEADER

+#define BOOST_BIND_GLOBAL_PLACEHOLDERS
+
#include <boost/serialization/map.hpp>
#include <boost/serialization/shared_ptr.hpp>
#include <boost/serialization/vector.hpp>
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/StackOperators.h StackBlock-f95317b08043b7c531289576d59ad74a6d920741/StackOperators.h
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/StackOperators.h 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/StackOperators.h 2024-01-04 13:48:49.790156000 +0100
@@ -3,7 +3,7 @@
#include "StackBaseOperator.h"
#include <boost/function.hpp>
#include <boost/functional.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>

typedef boost::function<void (std::vector<boost::shared_ptr<SpinAdapted::StackSparseMatrix> >)> FUNCTOR;
typedef boost::function<void (boost::shared_ptr<SpinAdapted::StackSparseMatrix>)> FUNCTOR2;
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackspinblock.C StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackspinblock.C
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackspinblock.C 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackspinblock.C 2024-01-04 13:30:04.524917000 +0100
@@ -23,7 +23,7 @@
#include <boost/serialization/array.hpp>
#include <boost/function.hpp>
#include <boost/functional.hpp>
-#include <boost/bind.hpp>
+#include <boost/bind/bind.hpp>
#include <boostutils.h>

#ifndef SERIAL
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackspinblock.h StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackspinblock.h
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackspinblock.h 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackspinblock.h 2024-01-04 13:41:28.043983000 +0100
@@ -1,5 +1,6 @@
#ifndef STACKSPINBLOCK_HEADER
#define STACKSPINBLOCK_HEADER
+#define BOOST_BIND_GLOBAL_PLACEHOLDERS
#include <list>
#include <boost/serialization/map.hpp>
#include <boost/serialization/shared_ptr.hpp>
diff -ru StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackwavefunction.C StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackwavefunction.C
--- StackBlock-f95317b08043b7c531289576d59ad74a6d920741.orig/Stackwavefunction.C 2020-05-25 15:51:59.000000000 +0200
+++ StackBlock-f95317b08043b7c531289576d59ad74a6d920741/Stackwavefunction.C 2024-01-04 14:16:06.713200000 +0100
@@ -224,7 +224,7 @@
sprintf (fileout, "%s/%s", dmrginp.load_prefix().c_str() , outfile.c_str());
boost::filesystem::path topath(fileout);

- copy_file(frompath, topath,boost::filesystem::copy_option::overwrite_if_exists);
+ copy_file(frompath, topath,boost::filesystem::copy_options::overwrite_existing);
}

string filename2 = itr->path().filename().string();
@@ -242,7 +242,7 @@
sprintf (fileout, "%s/%s", dmrginp.load_prefix().c_str() , outfile.c_str());
boost::filesystem::path topath(fileout);

- copy_file(frompath, topath,boost::filesystem::copy_option::overwrite_if_exists);
+ copy_file(frompath, topath,boost::filesystem::copy_options::overwrite_existing);
}

}
@@ -284,7 +284,7 @@
sprintf (fileout, "%s/%s", dmrginp.load_prefix().c_str() , outfile.c_str());
boost::filesystem::path topath(fileout);

- copy_file(frompath, topath,boost::filesystem::copy_option::overwrite_if_exists);
+ copy_file(frompath, topath,boost::filesystem::copy_options::overwrite_existing);
}

string filename2 = itr->path().filename().string();
@@ -302,7 +302,7 @@
sprintf (fileout, "%s/%s", dmrginp.load_prefix().c_str() , outfile.c_str());
boost::filesystem::path topath(fileout);

- copy_file(frompath, topath,boost::filesystem::copy_option::overwrite_if_exists);
+ copy_file(frompath, topath,boost::filesystem::copy_options::overwrite_existing);
}

}
29 changes: 29 additions & 0 deletions easybuild/easyconfigs/b/Boost.MPI/Boost.MPI-1.81.0-gompi-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
easyblock = 'EB_Boost'

name = 'Boost.MPI'
version = '1.81.0'

homepage = 'https://www.boost.org/'
description = """Boost provides free peer-reviewed portable C++ source libraries."""

toolchain = {'name': 'gompi', 'version': '2022b'}
toolchainopts = {'pic': True, 'usempi': True}

source_urls = ['https://boostorg.jfrog.io/artifactory/main/release/%(version)s/source/']
sources = ['boost_%s.tar.gz' % '_'.join(version.split('.'))]
checksums = ['205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6']

dependencies = [
('bzip2', '1.0.8'),
('zlib', '1.2.12'),
('XZ', '5.2.7'),
('zstd', '1.5.2'),
('ICU', '72.1'),
]

configopts = '--without-libraries=python'

boost_mpi = True
tagged_layout = True

moduleclass = 'devel'

0 comments on commit c01811a

Please sign in to comment.