Build process of module ATC

Hi,

I'm in the process of compiling LAMMPS including some modules, starting with ATC. After checking src/USER-ATC/README it pointed me to lib/atc/README and I see three ways to compile it. I tried them in order and the Python-way (doing it either with:

$ make lib-atc args="-m mpi -e atc" (inside src)

or

$ python Install.py -m mpi -e atc (inside lib)

) led both to an error message:

[email protected]:~/lam_development/lammps-11Aug17/lib/atc> python Install.py -m mpi -e atc
Building libatc.a ...
Traceback (most recent call last):
  File "Install.py", line 95, in <module>
    txt = subprocess.check_output(cmd,shell=True,stderr=subprocess.STDOUT)
  File "/home/software/python-2.7/lib/python2.7/subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'make -f Makefile.auto clean; make -f Makefile.auto -j32' returned non-zero exit status 2

Is there any special version of Python necessary? Right now 2.7.11 is installed.

Hi,

I'm in the process of compiling LAMMPS including some modules, starting
with ATC. After checking src/USER-ATC/README it pointed me to
lib/atc/README and I see three ways to compile it. I tried them in order
and the Python-way (doing it either with:

$ make lib-atc args="-m mpi -e atc" (inside src)

or

$ python Install.py -m mpi -e atc (inside lib)

) led both to an error message:

[email protected]:~/lam_development/lammps-11Aug17/lib/atc> python Install.py -m
mpi -e atc
Building libatc.a ...
Traceback (most recent call last):
  File "Install.py", line 95, in <module>
    txt = subprocess.check_output(cmd,shell=True,stderr=subprocess.STDOUT)
  File "/home/software/python-2.7/lib/python2.7/subprocess.py", line 573,
in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'make -f Makefile.auto clean; make
-f Makefile.auto -j32' returned non-zero exit status 2

Is there any special version of Python necessary? Right now 2.7.11 is
installed.

​python 2.7 or a recent python 3.x​ should work.

===

On the other hand, then I tried the third way to execute:

[email protected]:~/lam_development/lammps-11Aug17/lib/atc> make -f Makefile.mpi

and despite a bunch of "may be used uninitialized in this function"
warnings it succeeded an I got a libatc.a and Makefile.lammps

===

Is the Python way of building it broken or the a plain `make` the favored
way anyway?

​the problem is your incorrect use of the "-e" flag. the only available
options for atc are "installed" or "linalg"
​default is linalg, i.e. you also have to compile in lib/linalg to use the
bundled BLAS/LAPACK functions.

axel.

Hi Axel:

Hi,

I'm in the process of compiling LAMMPS including some modules, starting with ATC. After checking src/USER-ATC/README it pointed me to lib/atc/README and I see three ways to compile it. I tried them in order and the Python-way (doing it either with:

$ make lib-atc args="-m mpi -e atc" (inside src)

or

$ python Install.py -m mpi -e atc (inside lib)

) led both to an error message:

[email protected]:~/lam_development/lammps-11Aug17/lib/atc> python Install.py -m mpi -e atc
Building libatc.a ...
Traceback (most recent call last):
  File "Install.py", line 95, in <module>
    txt = subprocess.check_output(cmd,shell=True,stderr=subprocess.STDOUT)
  File "/home/software/python-2.7/lib/python2.7/subprocess.py", line 573, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command 'make -f Makefile.auto clean; make -f Makefile.auto -j32' returned non-zero exit status 2

Is there any special version of Python necessary? Right now 2.7.11 is installed.

​python 2.7 or a recent python 3.x​ should work.

===

On the other hand, then I tried the third way to execute:

[email protected]:~/lam_development/lammps-11Aug17/lib/atc> make -f Makefile.mpi

and despite a bunch of "may be used uninitialized in this function" warnings it succeeded an I got a libatc.a and Makefile.lammps

===

Is the Python way of building it broken or the a plain `make` the favored way anyway?

​the problem is your incorrect use of the "-e" flag. the only available options for atc are "installed" or "linalg"
​default is linalg, i.e. you also have to compile in lib/linalg to use the bundled BLAS/LAPACK functions.

Thx a lot for your reply. Obviously I read the documentation in the wrong way:

  -e = set EXTRAMAKE variable in Makefile.machine to Makefile.lammps.suffix
       does not alter existing Makefile.machine

I thought that the file Makefile.lammps.suffix will be created and I can set this suffix to an arbitrary string. Instead the meaning is:

  -e = will honor Makefile.lammps.suffix (and include this by setting EXTRAMAKE variable in Makefile.auto as a copy of Makefile.machine)
       does not alter existing Makefile.machine

Anyway, now I know how to proceed.

-- Reuti