Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
UEABS
ueabs
Commits
2e35361e
Commit
2e35361e
authored
Nov 25, 2021
by
Cedric Jourdain
🐵
Browse files
Fix merge conflict for compile
parents
2a1e952f
c8fbc69a
Changes
67
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
2e35361e
...
...
@@ -282,7 +282,7 @@ The SHOC benchmark suite currently contains benchmark programs, categoried based
# SPECFEM3D <a name="specfem3d"></a>
|
**General information**
|
**Scientific field**
|
**Language**
|
**MPI**
|
**OpenMP**
|
**GPU**
|
**LoC**
|
**Code description**
|
|------------------|----------------------|--------------|---------|------------|---------------------|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
|
[
- Website
](
https://geodynamics.org/cig/software/specfem3d_globe/
)
<br>
[
- Source
](
https://github.com/geodynamics/specfem3d_globe.git
)
<br>
[
- Bench
](
https://repository.prace-ri.eu/git/UEABS/ueabs/tree/r2.1-dev/specfem3d
)
<br>
[
- Summary
](
https://repository.prace-ri.eu/git/UEABS/ueabs/blob/r2.1-dev/specfem3d/PRACE_UEABS_Specfem3D_summary.pdf
)
| Geodynamics | Fortran | yes | yes | Yes (CUDA) | 1
4
00
00
| The software package SPECFEM3D simulates three-dimensional global and regional seismic wave propagation based upon the spectral-element method (SEM). |
|
[
- Website
](
https://geodynamics.org/cig/software/specfem3d_globe/
)
<br>
[
- Source
](
https://github.com/geodynamics/specfem3d_globe.git
)
<br>
[
- Bench
](
https://repository.prace-ri.eu/git/UEABS/ueabs/tree/r2.1-dev/specfem3d
)
<br>
[
- Summary
](
https://repository.prace-ri.eu/git/UEABS/ueabs/blob/r2.1-dev/specfem3d/PRACE_UEABS_Specfem3D_summary.pdf
)
| Geodynamics | Fortran
& C
| yes | yes | Yes (CUDA) | 100
k Fortran & 20k C
| The software package SPECFEM3D simulates three-dimensional global and regional seismic wave propagation based upon the spectral-element method (SEM). |
# TensorFlow <a name="tensorflow"></a>
...
...
gpaw/README.md
View file @
2e35361e
...
...
@@ -100,7 +100,7 @@ these versions of GPAW.
Installing and running GPAW has changed a lot in the since the previous
versions of the UEABS. GPAW version numbering changed in 2019. Version 1.5.3 is the
last version with the old numbering. In 2019 the development team switched
to a version numbering scheme based on year, month and patchlevel, e.g.,
to a version numbering scheme based on year, month and patch
level, e.g.,
19.
8.1 for the second version released in August 2019.
Another change is in the Python packages used to install GPAW. Versions up to
...
...
@@ -169,9 +169,9 @@ In addition, the GPU version needs:
Installing GPAW also requires a number of standard build tools on the system, including
*
[
GNU autoconf
](
https://www.gnu.org/software/autoconf/
)
is needed to generate the
configure script for
l
ib
xc
configure script for
L
ib
XC
*
[
GNU Libtool
](
https://www.gnu.org/software/libtool/
)
is needed. If not found,
the configure process of
l
ib
xc
produces very misleading
the configure process of
L
ib
XC
produces very misleading
error messages that do not immediately point to libtool missing.
*
[
GNU make
](
https://www.gnu.org/software/make/
)
...
...
@@ -297,8 +297,8 @@ on one hand and version 21.1.0 on the other hand.
The expected values are:
*
Number of iterations: Between 30 and 35
*
Dipole (3rd component):
b
etween -0.493 and -0.491
*
Fermi level:
b
etween -2.67 and -2.66
*
Dipole (3rd component):
B
etween -0.493 and -0.491
*
Fermi level:
B
etween -2.67 and -2.66
*
Extrapolated energy: Between -3784 and -3783
Note: Though not used for the benchmarking in the final report, some testing was done
...
...
@@ -307,7 +307,7 @@ by new internal implementations that cause changes in some results. For 21.1.0,
expected values are:
*
Number of iterations: Between 30 and 35
*
Dipole (3rd component):
b
etween -0.462 and -0.461
*
Fermi level:
b
etween -2.59 and -2.58
*
Dipole (3rd component):
B
etween -0.462 and -0.461
*
Fermi level:
B
etween -2.59 and -2.58
*
Extrapolated energy: Between -3784 and -3783
gpaw/build/build-CPU.md
View file @
2e35361e
# Detailed GPAW installation instructions on non-acclerated systems
# Detailed GPAW installation instructions on non-acc
e
lerated systems
These instructions are in addition to the brief instructions in
[
README.md
](
../README.md
)
.
...
...
@@ -13,7 +13,7 @@ GPAW needs (for the UEABS benchmarks)
*
[
Python
](
https://www.python.org/
)
: GPAW 20.1.0 requires Python 3.5-3.8, and
GPAW 20.10.0 and 21.1.0 require Python 3.6-3.9.
*
[
MPI library
](
https://www.mpi-forum.org/
)
*
[
LibXC
](
https://www.tddft.org/programs/
l
ib
xc
/
)
. GPAW 20.1.0,
*
[
LibXC
](
https://www.tddft.org/programs/
L
ib
XC
/
)
. GPAW 20.1.0,
20.
10.0 and 21.1.0 all need LibXC 3.x or 4.x.
*
(Optimized)
[
BLAS
](
http://www.netlib.org/blas/
)
and
[
LAPACK
](
http://www.netlib.org/lapack/
)
libraries.
...
...
@@ -22,7 +22,7 @@ GPAW needs (for the UEABS benchmarks)
will give very poor performance. Most optimized LAPACK libraries actually only
optimize a few critical routines while the remaining routines are compiled from
the reference version. Most processor vendors for HPC machines and system vendors
offer optmized versions of these libraries.
offer opt
i
mized versions of these libraries.
*
[
ScaLAPACK
](
http://www.netlib.org/scalapack/
)
and the underlying communication
layer
[
BLACS
](
http://www.netlib.org/blacs/
)
.
*
[
FFTW
](
http://www.fftw.org/
)
or compatible FFT library.
...
...
@@ -60,7 +60,7 @@ GPAW needs
*
[
ASE, Atomic Simulation Environment
](
https://wiki.fysik.dtu.dk/ase/
)
, a Python package
from the same group that develops GPAW. The required versions is 3.18.0 or later for
GPAW 20.1.0, 20.10.0 and 21.1.0.
ASE has a couple of dependen
den
cies
ASE has a couple of dependencies
that are not needed for running the UEABS benchmarks. However, several Python
package install methods will trigger the installation of those packages, and
with them may require a chain of system libraries.
...
...
@@ -69,7 +69,7 @@ GPAW needs
This package is optional and not really needed to run the benchmarks.
Matplotlib pulls in a lot of other dependencies. When installing ASE with pip,
it will try to pull in matplotlib and its dependencies
*
[
pillow
](
https://pypi.org/project/Pillow/
)
needs several ex
g
ternal
*
[
pillow
](
https://pypi.org/project/Pillow/
)
needs several external
libraries. During the development of the benchmarks, we needed at least
zlib, libjpeg-turbo (or compatible libjpeg library) and freetype. Even
though the pillow documentation claimed that libjpeg was optional,
...
...
@@ -90,7 +90,7 @@ GPAW needs
code
*
[
itsdangerous
](
https://pypi.org/project/itsdangerous/
)
*
[
Werkzeug
](
https://pypi.org/project/Werkzeug/
)
*
[
click
](
)
*
[
click
](
https://pypi.org/project/click/
)
## Tested configurations
...
...
@@ -145,28 +145,28 @@ Also, the instructions below will need to be adapted to the specific
libraries that are being used.
Other prerequisites:
*
l
ib
xc
*
L
ib
XC
*
Python interpreter
*
Python package NumPy
*
Python package SciPy
*
Python package ase
### Installing
l
ib
xc
### Installing
L
ib
XC
*
Installing
l
ib
xc
requires GNU automake and GNU buildtool besides GNU make and a
*
Installing
L
ib
XC
requires GNU automake and GNU buildtool besides GNU make and a
C compiler. The build process is the usual GNU configure - make - make install
cycle, but the
`configure`
script still needs to be generated with autoreconf.
*
Download
l
ib
xc
:
*
The latest version of
l
ib
xc
can be downloaded from
[
the
l
ib
xc
download page
](
https://www.tddft.org/programs/libxc/download/
)
.
*
Download
L
ib
XC
:
*
The latest version of
L
ib
XC
can be downloaded from
[
the
L
ib
XC
download page
](
https://www.tddft.org/programs/libxc/download/
)
.
However, that version may not be officially supported by GPAW.
*
It is also possible to download all recent versions of
l
ib
xc
from
[
the
l
ib
xc
GitLab
](
https://gitlab.com/libxc/libxc
)
*
It is also possible to download all recent versions of
L
ib
XC
from
[
the
L
ib
XC
GitLab
](
https://gitlab.com/libxc/libxc
)
*
Select the tag corresponding to the version you want to download in the
branch/tag selection box.
*
Then use the download button and select the desired file type.
*
Dowload URLs look like
`https://gitlab.com/libxc/libxc/-/archive/4.3.4/libxc-4.3.4.tar.bz2`
.
*
Dow
n
load URLs look like
`https://gitlab.com/libxc/libxc/-/archive/4.3.4/libxc-4.3.4.tar.bz2`
.
*
Untar the file in the build directory.
...
...
@@ -228,8 +228,8 @@ of NumPy, SciPy and GPAW itself proves much more important.
use the NumPy FFT routines.
* GPAW also needs a number of so-called "Atomic PAW Setup" files. The latest files
can be found on the [GPAW website, Atomic PAW Setups page](https://wiki.fysik.dtu.dk/gpaw/setups/setups.html).
For the testing we used [
]
`
gpaw-setups-0.9.20000.tar.gz
`](https://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-0.9.20000.tar.gz)
for all versions of GPAW. The easiest way to install these files is to simpy untar
For the testing we used [`
gpaw-setups-0.9.20000.tar.gz
`](https://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-0.9.20000.tar.gz)
for all versions of GPAW. The easiest way to install these files is to simp
l
y untar
the file and set the environment variable GPAW_SETUP_PATH to point to that directory.
In the examples provided we use the `
share/gpaw-setups
` subdirectory of the install
directory for this purpose.
...
...
gpaw/build/examples/BSC-MareNostrum4-skylake/build_20.1.0_Python38_FFTW_icc.BSC.sh
0 → 100755
View file @
2e35361e
#!/bin/bash
#
# Installation script for GPAW 20.1.0:
# * We compile our own Python as this is the best guarantee to not have to
# struggle with compatibility problems between various compilers used for
# various components
# * Using the matching version of ase, 3.19.3
# * Compiling with the Intel compilers
#
# The FFT library is discovered at runtime. With the settings used in this script
# this should be MKL FFT, but it is possible to change this at runtime to either
# MKL, FFTW or the built-in NumPy FFT routines, see the installation instructions
# (link below).
#
# The original installation instructions for GPAW can be found at
# https://gitlab.com/gpaw/gpaw/-/blob/20.1.0/doc/install.rst
#
packageID
=
'20.1.0-Python38-FFTW-icc'
packageName
=
'GPAW-UEABS'
echo
-e
"
\n
###### Building
$packageName
/
$packageID
from
$0
\n\n
"
# The next three variables are only used to load the right UEABS module
# and to give example values for variable settings in comments.
install_root
=
$PROJECT
/UEABS
systemID
=
BSC-MareNostrum4-skylake
module purge
MODULEPATH
=
$install_root
/
$systemID
/Modules:
$MODULEPATH
#
# The following UEABS_ variables are needed:
# We set them manually as we have no UEABS module for this system at the moment.
#
# Directory to put the downloaded sources of the packages.
UEABS_DOWNLOADS
=
$install_root
/SOURCES
# Directory where packages should be installed.
UEABS_PACKAGES
=
$install_root
/
$systemID
/Packages
# Directory where modules are installed
UEABS_MODULES
=
$install_root
/
$systemID
/Modules
install_dir
=
$UEABS_PACKAGES
/
$packageName
/
$packageID
modules_dir
=
$UEABS_MODULES
/
$packageName
#build_dir="/dev/shm/$USER/$packageName/$packageID"
build_dir
=
"
$SCRATCH
/UEABS-tmp/
$packageName
/
$packageID
"
# Software versions
python_version
=
'3.8.7'
zlib_version
=
'1.2.11'
ncurses_version
=
'6.2'
readline_version
=
'8.0'
sqlite_version
=
'3.33.0'
sqlite_download
=
'3330000'
libffi_version
=
'3.3'
fftw_version
=
'3.3.8'
libxc_version
=
'4.3.4'
setuptools_version
=
'56.0.0'
setuptoolsscm_version
=
'6.0.1'
wheel_version
=
'0.35.1'
attrs_version
=
'20.3.0'
pybind11_version
=
'2.6.2'
cython_version
=
'0.29.21'
py_version
=
'1.10.0'
pyparsing_version
=
'2.4.7'
toml_version
=
'0.10.2'
iniconfig_version
=
'1.1.1'
packaging_version
=
'20.9'
pytest_version
=
'6.2.3'
numpy_version
=
'1.18.5'
scipy_version
=
'1.5.4'
ase_version
=
'3.19.3'
GPAW_version
=
'20.1.0'
GPAWsetups_version
=
'0.9.20000'
# Check version on https://wiki.fysik.dtu.dk/gpaw/setups/setups.html
# Compiler settings
#compiler_module='intel/2020.1'
#mpi_module='impi/2018.4'
#math_module='mkl/2020.1'
compiler_module
=
'intel/2018.4'
mpi_module
=
'impi/2018.4'
math_module
=
'mkl/2018.4'
opt_level
=
'-O2'
proc_opt_flags
=
'-xHost'
fp_opt_flags
=
'-ftz -fp-speculation=safe -fp-model source'
parallel
=
16
py_maj_min
=
'3.8'
################################################################################
#
# Prepare the system
#
#
# Load modules
#
mkdir
-p
$modules_dir
module load
$compiler_module
module load
$mpi_module
module load
$math_module
#
# Create the directories and make sure they are clean if that matters
#
/usr/bin/mkdir
-p
$UEABS_DOWNLOADS
/usr/bin/mkdir
-p
$install_dir
/usr/bin/rm
-rf
$install_dir
/usr/bin/mkdir
-p
$install_dir
/usr/bin/mkdir
-p
$modules_dir
/usr/bin/mkdir
-p
$build_dir
/usr/bin/rm
-rf
$build_dir
/usr/bin/mkdir
-p
$build_dir
################################################################################
#
# Download components
#
echo
-e
"
\n
### Downloading files...
\n
"
function
wget
()
{
echo
"Please download
$1
to
$UEABS_DOWNLOADS
"
}
cd
$UEABS_DOWNLOADS
downloads_OK
=
1
# zlib: https://www.zlib.net/zlib-1.2.11.tar.gz
zlib_file
=
"zlib-
$zlib_version
.tar.gz"
zlib_url
=
"https://www.zlib.net"
[[
-f
$zlib_file
]]
||
wget
"
$zlib_url
/
$zlib_file
"
[[
-f
$zlib_file
]]
||
downloads_OK
=
0
# ncurses: https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.2.tar.gz
ncurses_file
=
"ncurses-
$ncurses_version
.tar.gz"
ncurses_url
=
"https://ftp.gnu.org/pub/gnu/ncurses"
[[
-f
$ncurses_file
]]
||
wget
"
$ncurses_url
/
$ncurses_file
"
[[
-f
$ncurses_file
]]
||
downloads_OK
=
0
# readline: https://ftp.gnu.org/pub/gnu/readline/readline-8.0.tar.gz
readline_file
=
"readline-
$readline_version
.tar.gz"
readline_url
=
"https://ftp.gnu.org/pub/gnu/readline"
[[
-f
$readline_file
]]
||
wget
"
$readline_url
/
$readline_file
"
[[
-f
$readline_file
]]
||
downloads_OK
=
0
# sqlite: https://www.sqlite.org/2020/sqlite-autoconf-3330000.tar.gz
sqlite_file
=
"sqlite-autoconf-
$sqlite_download
.tar.gz"
sqlite_url
=
"https://www.sqlite.org/2020"
[[
-f
$sqlite_file
]]
||
wget
"
$sqlite_url
/
$sqlite_file
"
[[
-f
$sqlite_file
]]
||
downloads_OK
=
0
# libffi: https://github.com/libffi/libffi/releases/download/v3.3/libffi-3.3.tar.gz
libffi_file
=
"libffi-
$libffi_version
.tar.gz"
libffi_url
=
"https://github.com/libffi/libffi/releases/download/v
$libffi_version
"
[[
-f
$libffi_file
]]
||
wget
"
$libffi_url
/
$libffi_file
"
[[
-f
$libffi_file
]]
||
downloads_OK
=
0
# FFTW: http://www.fftw.org/fftw-3.3.8.tar.gz
fftw_file
=
"fftw-
$fftw_version
.tar.gz"
fftw_url
=
"http://www.fftw.org"
[[
-f
$fftw_file
]]
||
wget
"
$fftw_url
/
$fftw_file
"
[[
-f
$fftw_file
]]
||
downloads_OK
=
0
# https://gitlab.com/libxc/libxc/-/archive/4.3.4/libxc-4.3.4.tar.bz2
libxc_file
=
"libxc-
$libxc_version
.tar.bz2"
libxc_url
=
"https://gitlab.com/libxc/libxc/-/archive/
$libxc_version
"
[[
-f
$libxc_file
]]
||
wget
"
$libxc_url
/
$libxc_file
"
[[
-f
$libxc_file
]]
||
downloads_OK
=
0
# Python: https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
python_file
=
"Python-
$python_version
.tar.xz"
python_url
=
"https://www.python.org/ftp/python/
$python_version
"
[[
-f
$python_file
]]
||
wget
"
$python_url
/
$python_file
"
[[
-f
$python_file
]]
||
downloads_OK
=
0
# Downloading setuptools.
setuptools_file
=
"setuptools-
$setuptools_version
.tar.gz"
setuptools_url
=
"https://pypi.python.org/packages/source/s/setuptools"
[[
-f
$setuptools_file
]]
||
wget
$setuptools_url
/
$setuptools_file
[[
-f
$setuptools_file
]]
||
downloads_OK
=
0
# Downloading setuptoolssscm so that we can gather all sources for reproducibility.
setuptoolsscm_file
=
"setuptools_scm-
$setuptoolsscm_version
.tar.gz"
setuptoolsscm_url
=
"https://pypi.python.org/packages/source/s/setuptools_scm"
[[
-f
$setuptoolsscm_file
]]
||
wget
$setuptoolsscm_url
/
$setuptoolsscm_file
[[
-f
$setuptoolsscm_file
]]
||
downloads_OK
=
0
# Downloading wheel so that we can gather all sources for reproducibility.
wheel_file
=
"wheel-
$wheel_version
.tar.gz"
wheel_url
=
"https://pypi.python.org/packages/source/w/wheel"
[[
-f
$wheel_file
]]
||
wget
"
$wheel_url
/
$wheel_file
"
[[
-f
$wheel_file
]]
||
downloads_OK
=
0
# Downloading attrs so that we can gather all sources for reproducibility.
attrs_file
=
"attrs-
$attrs_version
.tar.gz"
attrs_url
=
"https://pypi.python.org/packages/source/a/attrs"
[[
-f
$attrs_file
]]
||
wget
$attrs_url
/
$attrs_file
[[
-f
$attrs_file
]]
||
downloads_OK
=
0
# Downloading pybind11 so that we can gather all sources for reproducibility.
pybind11_file
=
"pybind11-
$pybind11_version
.tar.gz"
pybind11_url
=
"https://pypi.python.org/packages/source/p/pybind11"
[[
-f
$pybind11_file
]]
||
wget
$pybind11_url
/
$pybind11_file
[[
-f
$pybind11_file
]]
||
downloads_OK
=
0
# Downloading Cython so that we can gather all sources for reproducibility.
cython_file
=
"Cython-
$cython_version
.tar.gz"
cython_url
=
"https://pypi.python.org/packages/source/c/cython"
[[
-f
$cython_file
]]
||
wget
"
$cython_url
/
$cython_file
"
[[
-f
$cython_file
]]
||
downloads_OK
=
0
# Downloading py so that we can gather all sources for reproducibility.
py_file
=
"py-
$py_version
.tar.gz"
py_url
=
"https://pypi.python.org/packages/source/p/py"
[[
-f
$py_file
]]
||
wget
$py_url
/
$py_file
[[
-f
$py_file
]]
||
downloads_OK
=
0
# Downloading pyparsing so that we can gather all sources for reproducibility.
pyparsing_file
=
"pyparsing-
$pyparsing_version
.tar.gz"
pyparsing_url
=
"https://pypi.python.org/packages/source/p/pyparsing"
[[
-f
$pyparsing_file
]]
||
wget
$pyparsing_url
/
$pyparsing_file
[[
-f
$pyparsing_file
]]
||
downloads_OK
=
0
# Downloading toml so that we can gather all sources for reproducibility.
toml_file
=
"toml-
$toml_version
.tar.gz"
toml_url
=
"https://pypi.python.org/packages/source/t/toml"
[[
-f
$toml_file
]]
||
wget
$toml_url
/
$toml_file
[[
-f
$toml_file
]]
||
downloads_OK
=
0
# Downloading iniconfig so that we can gather all sources for reproducibility.
iniconfig_file
=
"iniconfig-
$iniconfig_version
.tar.gz"
iniconfig_url
=
"https://pypi.python.org/packages/source/i/iniconfig"
[[
-f
$iniconfig_file
]]
||
wget
$iniconfig_url
/
$iniconfig_file
[[
-f
$iniconfig_file
]]
||
downloads_OK
=
0
# Downloading packaging so that we can gather all sources for reproducibility.
packaging_file
=
"packaging-
$packaging_version
.tar.gz"
packaging_url
=
"https://pypi.python.org/packages/source/p/packaging"
[[
-f
$packaging_file
]]
||
wget
$packaging_url
/
$packaging_file
[[
-f
$packaging_file
]]
||
downloads_OK
=
0
# Downloading pytest so that we can gather all sources for reproducibility.
pytest_file
=
"pytest-
$pytest_version
.tar.gz"
pytest_url
=
"https://pypi.python.org/packages/source/p/pytest"
[[
-f
$pytest_file
]]
||
wget
$pytest_url
/
$pytest_file
[[
-f
$pytest_file
]]
||
downloads_OK
=
0
# NumPy needs customizations, so we need to download and unpack the sources
numpy_file
=
"numpy-
$numpy_version
.zip"
numpy_url
=
"https://pypi.python.org/packages/source/n/numpy"
[[
-f
$numpy_file
]]
||
wget
"
$numpy_url
/
$numpy_file
"
[[
-f
$numpy_file
]]
||
downloads_OK
=
0
# SciPy
scipy_file
=
"scipy-
$scipy_version
.tar.gz"
scipy_url
=
"https://pypi.python.org/packages/source/s/scipy"
[[
-f
$scipy_file
]]
||
wget
"
$scipy_url
/
$scipy_file
"
[[
-f
$scipy_file
]]
||
downloads_OK
=
0
# Downloading ase so that we can gather all sources for reproducibility
ase_file
=
"ase-
$ase_version
.tar.gz"
ase_url
=
"https://pypi.python.org/packages/source/a/ase"
[[
-f
$ase_file
]]
||
wget
"
$ase_url
/
$ase_file
"
[[
-f
$ase_file
]]
||
downloads_OK
=
0
# GPAW needs customization, so we need to download and unpack the sources.
GPAW_file
=
"gpaw-
$GPAW_version
.tar.gz"
GPAW_url
=
"https://pypi.python.org/packages/source/g/gpaw"
[[
-f
$GPAW_file
]]
||
wget
"
$GPAW_url
/
$GPAW_file
"
[[
-f
$GPAW_file
]]
||
downloads_OK
=
0
# Download GPAW-setup, a number of setup files for GPAW.
# https://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-0.9.20000.tar.gz
GPAWsetups_file
=
"gpaw-setups-
$GPAWsetups_version
.tar.gz"
GPAWsetups_url
=
"https://wiki.fysik.dtu.dk/gpaw-files"
[[
-f
$GPAWsetups_file
]]
||
wget
"
$GPAWsetups_url
/
$GPAWsetups_file
"
[[
-f
$GPAWsetups_file
]]
||
downloads_OK
=
0
[[
$downloads_OK
]]
||
exit
################################################################################
#
# Set PATH-style variables
#
/usr/bin/mkdir
-p
$install_dir
/bin
PATH
=
"
$install_dir
/bin:
$PATH
"
/usr/bin/mkdir
-p
$install_dir
/lib
LD_LIBRARY_PATH
=
"
$install_dir
/lib:
$LD_LIBRARY_PATH
"
export
LIBRARY_PATH
=
"
$LD_LIBRARY_PATH
"
################################################################################
#
# Install ncurses
#
# We mirror the two-step EasyBuild install process. This may be overkill, but
# we know it works.
#
echo
-e
"
\n
### Installing ncurses...
\n
"
cd
$build_dir
# Uncompress
tar
-xf
$UEABS_DOWNLOADS
/
$ncurses_file
cd
ncurses-
$ncurses_version
# Configure step 1
export
CC
=
icc
export
CFLAGS
=
"
$opt_level
$proc_opt_flags
$fp_opt_flags
-fPIC"
export
CXX
=
icpc
export
CXXFLAGS
=
"
$opt_level
$proc_opt_flags
$fp_opt_flags
-fPIC"
./configure
--prefix
=
"
$install_dir
"
\
--with-shared
--enable-overwrite
--without-ada
--enable-symlinks
# Build step 1
make
-j
$parallel
# Install step 1
make
install
# Add bin, lib and include to the PATH variables
PATH
=
$install_dir
/bin:
$PATH
LIBRARY_PATH
=
$install_dir
/lib:
$LIBRARY_PATH
LD_LIBRARY_PATH
=
$install_dir
/lib:
$LD_LIBRARY_PATH
CPATH
=
$install_dir
/include:
$CPATH
# Configure step 2
make distclean
./configure
--prefix
=
"
$install_dir
"
\
--with-shared
--enable-overwrite
--without-ada
--enable-symlinks
\
--enable-ext-colors
--enable-widec
\
--includedir
=
$install_dir
/include/ncursesw/
# Build step 2
make
-j
$parallel
# Install step 2
make
install
# Clean-up
unset
CC
unset
CFLAGS
unset
CXX
unset
CXXFLAGS
echo
-e
"
\n
### Finishing ncurses installation...
\n
"
################################################################################
#
# Install readline
#
echo
-e
"
\n
### Installing readline...
\n
"
cd
$build_dir
# Uncompress
tar
-xf
$UEABS_DOWNLOADS
/
$readline_file
cd
readline-
$readline_version
# Configure
export
CC
=
icc
export
CFLAGS
=
"
$opt_level
$proc_opt_flags
$fp_opt_flags
-fPIC"
export
CPPFLAGS
=
"-I
$install_dir
/include"
export
LDFLAGS
=
"-L
$install_dir
/lib -lncurses"
./configure
--prefix
=
"
$install_dir
"
# Build
make
-j
$parallel
# Install
make
install
# Clean-up
unset
CC
unset
CFLAGS
unset
CPPFLAGS
unset
LDFLAGS
echo
-e
"
\n
### Finishing readline installation...
\n
"
################################################################################
#
# Install zlib
#
echo
-e
"
\n
### Installing zlib...
\n
"
cd
$build_dir
# Uncompress
tar
-xf
$UEABS_DOWNLOADS
/
$zlib_file
cd
zlib-
$zlib_version
# Configure
export
CC
=
icc
export
CFLAGS
=
"
$opt_level
$proc_opt_flags
$fp_opt_flags
-fPIC"
./configure
--prefix
=
"
$install_dir
"
# Build
make
-j
$parallel
# Install
make
install
# Clean-up
unset
CC
unset
CFLAGS
echo
-e
"
\n
### Finishing zlib installation...
\n
"
################################################################################
#
# Install libffi
#
echo
-e
"
\n
### Installing libffi...
\n
"
cd
$build_dir
# Uncompress
tar
-xf
$UEABS_DOWNLOADS
/
$libffi_file
cd
libffi-
$libffi_version
# Configure
export
CC
=
icc
export
CFLAGS
=
"
$opt_level
$proc_opt_flags
$fp_opt_flags
-fPIC"
./configure
--prefix
=
"
$install_dir
"
\
--disable-multi-os-directory