Just to follow up on this: the Libint easyblock has been updated to support installing Libint 2.6.0 (see https://github.com/easybuilders/easybuild-easyblocks/pull/2116), and an easyconfig file for Libint 2.6.0 has been merged into the 'develop' branch (see https://github.com/easybuilders/easybuild-easyconfigs/pull/11099), but be included in the upcoming EasyBuild release.

Building CP2K on top of this seems to be working well, see https://github.com/easybuilders/easybuild-easyconfigs/pull/10714 .


regards,

Kenneth

On 29/05/2020 18:32, André Gemünd wrote:
By the way, make check runs through for me if I add a second parameter to 
--with-max-am (--with-max-am=%d,%d). I wonder how that works for cp2k, because 
they don't have that (took the hint from the compile script in libint).

Greetings
André

----- Am 29. Mai 2020 um 18:05 schrieb Andre Gemuend 
[email protected]:

Hi Kenneth,

in fact, I think I misunderstood the prebuilt packages and the build process.

I seems we first need to build the libint compiler, then the export library,
then build that. The libint configure that is available after autogen.sh
doesn't even know "--enable-fortran". Only the export package, which is also
what is provided as "libint-cp2k". I'm currently looking into it.

Greetings
André

----- Am 29. Mai 2020 um 14:02 schrieb Kenneth Hoste [email protected]:

On 29/05/2020 12:37, André Gemünd wrote:
Hi Kenneth,

I'm currently trying with the following and its building since roughly 2 hours,
on a single core though although it was called with -j 32.

I'm seeing the same thing, I'm not sure you can make it build in parallel...

I also tried with lmax=4, and that finished building after ~45min only
to fail in "make check" with:

In file included from ../../include/libint2/engine.h(988), from
../../include/libint2/cxxapi.h(41),
                  from ../../include/libint2.hpp(24), from test.cc(24):
../../include/libint2/./engine.impl.h(627): error: identifier
"LIBINT2_MAX_AM_default1" is undefined BOOST_PP_LIST_FOR_EACH_PRODUCT(
     ^

compilation aborted for test.cc (code 2)
make[1]: *** [test.o] Error 2


The generated configure command was using this:

--enable-eri=1 --enable-eri2=1 --enable-eri3=1 --with-max-am=4
--with-eri-max-am=4,3 --with-eri2-max-am=6,5 --with-eri3-max-am=6,5
--enable-shared  --with-pic


Should be OK, no?



easyblock = 'ConfigureMake'
name = 'Libint'
version = '2.6.0'

homepage = 'https://github.com/evaleev/libint'
description = """Libint library is used to evaluate the traditional (electron
repulsion) and certain novel two-body
   matrix elements (integrals) over Cartesian Gaussian functions used in modern
   atomic and molecular theory."""

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

source_urls = ['https://github.com/evaleev/libint/archive']
sources = ['v%(version)s.tar.gz']
checksums = ['4ae47e8f0b5632c3d2a956469a7920896708e9f0e396ec10071b8181e4c8d9fa']

builddependencies = [
      ('Autotools', '20180311'),
      ('GMP', '6.2.0'),
      ('Boost', '1.72.0'),
      ('Eigen', '3.3.7', '', True),
      ('MPFR', '4.0.2'),
      ('Python', '2.7.18'),
]

preconfigopts = './autogen.sh && '

_lmax = 7

# configure opts motivated by cp2k:
# https://github.com/cp2k/libint-cp2k/blob/master/Jenkinsfile
configopts = '--enable-fortran --enable-eri=1 --enable-eri2=1 --enable-eri3=1 \
                 --with-max-am=%d \
                 --with-eri-max-am=%d,%d \
                 --with-eri2-max-am=%d,%d \
                 --with-eri3-max-am=%d,%d \
                 --with-opt-am=3 ' % (_lmax, _lmax, _lmax-1, _lmax+2, _lmax+1, 
_lmax+2, _lmax+1)

moduleclass = 'chem'

Greetings
André

----- Am 29. Mai 2020 um 11:35 schrieb Kenneth Hoste [email protected]:

On 29/05/2020 10:46, André Gemünd wrote:
Hi Kenneth,

thanks for that. I'm at a similar point but using foss-2020a. I also wanted to
do Intel afterwards, but I thought I'd start with foss because I had some very
weird errors with CP2k and Intel in the past. I'm currently looking more
closely at Libint (https://github.com/evaleev/libint/wiki)

According to that and the buildflags the cp2k people use, we should be building
Libint with

--enable-eri=1 --enable-eri2=1 --enable-eri3=1 \
           --with-max-am=${LMAX} \
           --with-eri-max-am=${LMAX},$((LMAX-1)) \
           --with-eri2-max-am=$((LMAX+2)),$((LMAX+1)) \
           --with-eri3-max-am=$((LMAX+2)),$((LMAX+1)) \
           --with-opt-am=3

I don't see the easyblock doing that, or did I miss it?
That should be done in the Libint easyconfig, indeed, I'll look into
that as well.

I'm also wondering if it might make sense to put the lmax option in the name of
the package to be a bit more generic? On the other hand, increasing lmax
apparently only increases buildtime and library size (according to the README
here: https://github.com/cp2k/libint-cp2k). The cp2k guys themselves offer
prebuilt binaries for up to lmax 7, so maybe that should be our goto as well?
Enabling fortran is not a disadvantage for any other use, so that would be make
the library as generic as possible I guess?
I think it indeed makes perfect sense to "tag" Libint with versionsuffix
= '-lmax-7', and not hold back there, unless the build blows up to
taking hours and consuming GBs of disk space in the installation
directory (and even then...).

Also, it doesn't really matter, but is Python really needed as a builddep? I
guess I'll try it out.
It was added for a reason probably, but I can double check on that...

Could be to avoid relying on the system Python (which could also be
Python 3).


regards,

Kenneth

Cheers
André

----- Am 28. Mai 2020 um 22:13 schrieb Kenneth Hoste [email protected]:

We have requests for CP2K 7.1, so it's on my TODO list.

I didn't get very far yet, but I'll share what I have:

* changes to CP2K easyblock:
https://github.com/easybuilders/easybuild-easyblocks/pull/2069

* easyconfigs for CP2K 7.1 + deps (doesn't work yet):
https://github.com/easybuilders/easybuild-easyconfigs/pull/10714

To test:

eb --include-easyblocks-from-pr 2069 --from-pr 10714 --robot


Any help is welcome :)


regards,

Kenneth

On 28/05/2020 15:55, André Gemünd wrote:
Dear Loris,

I just found this message from January because I was looking for CP2k 7.1 as
well. Did you make any progress with that?

Best Greetings
André

----- Am 27. Jan 2020 um 15:51 schrieb Loris Bennett [email protected]:

Hi,

I was wondering whether any work is going on regarding an EB/EC for CP2L
7.1.  The directory structure seems to have changed such that there is
no longer a directory 'makefiles' in the top-level directory, so this
bit of the EC

     def build_step(self):
           """Start the actual build
           - go into makefiles dir
           - patch Makefile
           -build_and_install
           """

           makefiles = os.path.join(self.cfg['start_dir'], 'makefiles')
           change_dir(makefiles)

fails.

Cheers,

Loris

--
Dr. Loris Bennett (Mr.)
ZEDAT, Freie Universität Berlin         Email [email protected]

--
Dipl.-Inf. André Gemünd, Leiter IT / Head of IT
Fraunhofer-Institute for Algorithms and Scientific Computing
[email protected]
Tel: +49 2241 14-2193
/C=DE/O=Fraunhofer/OU=SCAI/OU=People/CN=Andre Gemuend

Reply via email to