mirror of
https://github.com/JHUAPL/kaiju.git
synced 2026-01-08 02:23:51 -05:00
refactor docs
This commit is contained in:
@@ -12,4 +12,6 @@ These are documents that are not ready or not intended for public consumption.
|
||||
rcm/index
|
||||
testing/index
|
||||
user_rules/index
|
||||
codeInformation/index
|
||||
tools/index
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
@@ -55,9 +55,9 @@ exclude_patterns = [
|
||||
]
|
||||
|
||||
if not os.environ.get("BUILD_ALL"):
|
||||
exclude_patterns.append("misc/**")
|
||||
exclude_patterns.append("_obsolete/**")
|
||||
|
||||
def setup(app):
|
||||
|
||||
if os.environ.get('BUILD_ALL'):
|
||||
app.tags.add('misc')
|
||||
app.tags.add('_obsolete')
|
||||
@@ -33,8 +33,9 @@ Table of contents
|
||||
makeitso/index
|
||||
tools/index
|
||||
roadrules
|
||||
misc/index
|
||||
|
||||
.. only:: misc
|
||||
.. only:: _obsolete
|
||||
|
||||
Internal Docs
|
||||
-------------
|
||||
@@ -42,4 +43,4 @@ Table of contents
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
misc/index
|
||||
_obsolete/index
|
||||
@@ -1,57 +1,57 @@
|
||||
Building the CDF library on CentOS-Stream 9
|
||||
===========================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to build and install the CDF library on CentOS-Stream 9 for use with the ``kaiju`` software.
|
||||
This file describes how to build and install the CDF library on CentOS-Stream 9 for use with the ``kaiju`` software.
|
||||
|
||||
.. **NOTE**: A CentOS-Stream 9-specific subdirectory of the user home directory is used for this build.
|
||||
**NOTE**: A CentOS-Stream 9-specific subdirectory of the user home directory is used for this build.
|
||||
|
||||
.. Building and installing the CDF library
|
||||
.. ---------------------------------------
|
||||
Building and installing the CDF library
|
||||
---------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Specify the name for this system.
|
||||
.. host_system=centos-stream-9
|
||||
# Specify the name for this system.
|
||||
host_system=centos-stream-9
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. build_root=$HOME/$host_system/local/cdf/3.9.0
|
||||
.. mkdir -p $build_root/src
|
||||
.. cd $build_root/src
|
||||
# Specify and create the root of the build tree.
|
||||
build_root=$HOME/$host_system/local/cdf/3.9.0
|
||||
mkdir -p $build_root/src
|
||||
cd $build_root/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf cdf39_0-dist-all.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd cdf39_0-dist
|
||||
# Move into the code directory.
|
||||
cd cdf39_0-dist
|
||||
|
||||
.. # Build the library using the default system GNU compiler.
|
||||
.. date; time make OS=linux ENV=gnu CURSES=no all >& make.out; date
|
||||
.. # Took 0m32.670s
|
||||
# Build the library using the default system GNU compiler.
|
||||
date; time make OS=linux ENV=gnu CURSES=no all >& make.out; date
|
||||
# Took 0m32.670s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make test >& make_test.out; date
|
||||
.. # Took 0m0.392s
|
||||
# Test the library.
|
||||
date; time make test >& make_test.out; date
|
||||
# Took 0m0.392s
|
||||
|
||||
.. # Install the library in a version-specific subdirectory.
|
||||
.. date; time make INSTALLDIR=$build_root install >& make_install.out; date
|
||||
.. # Took 0m1.691s
|
||||
# Install the library in a version-specific subdirectory.
|
||||
date; time make INSTALLDIR=$build_root install >& make_install.out; date
|
||||
# Took 0m1.691s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out; date
|
||||
.. # Took 0m0.378s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out; date
|
||||
# Took 0m0.378s
|
||||
|
||||
|
||||
.. Using the CDF library
|
||||
.. ---------------------
|
||||
Using the CDF library
|
||||
---------------------
|
||||
|
||||
.. To use this software, you must run the setup script:
|
||||
To use this software, you must run the setup script:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source $build_root/bin/definitions.B
|
||||
source $build_root/bin/definitions.B
|
||||
|
||||
@@ -1,74 +1,74 @@
|
||||
Building and installing the HDF5 library on CentOS-Stream 9
|
||||
===========================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to build and install HDF5 on an Intel-based system running CentOS-Stream 9 for use with the kaiju software.
|
||||
This file describes how to build and install HDF5 on an Intel-based system running CentOS-Stream 9 for use with the kaiju software.
|
||||
|
||||
.. These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
|
||||
.. Building and installing the HDF5 library
|
||||
.. ----------------------------------------
|
||||
Building and installing the HDF5 library
|
||||
----------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Specify the name for this machine.
|
||||
.. host_system=centos-stream-9
|
||||
# Specify the name for this machine.
|
||||
host_system=centos-stream-9
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. build_root=$HOME/$host_system/local/hdf5/1.14.1-2
|
||||
.. mkdir -p $build_root/src
|
||||
.. cd $build_root/src
|
||||
# Specify and create the root of the build tree.
|
||||
build_root=$HOME/$host_system/local/hdf5/1.14.1-2
|
||||
mkdir -p $build_root/src
|
||||
cd $build_root/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd hdf5-1.14.1-2
|
||||
# Move into the code directory.
|
||||
cd hdf5-1.14.1-2
|
||||
|
||||
.. # Configure the Intel compilers.
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
# Configure the Intel compilers.
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
.. # Configure the library with Fortran support.
|
||||
.. date; time \
|
||||
.. ./configure \
|
||||
.. FC=ifort \
|
||||
.. --prefix=$build_root \
|
||||
.. --enable-fortran \
|
||||
.. >& configure.out; date
|
||||
.. # Took 0m39.463s
|
||||
# Configure the library with Fortran support.
|
||||
date; time \
|
||||
./configure \
|
||||
FC=ifort \
|
||||
--prefix=$build_root \
|
||||
--enable-fortran \
|
||||
>& configure.out; date
|
||||
# Took 0m39.463s
|
||||
|
||||
.. # Compile the library.
|
||||
.. date; time make >& make.out; date
|
||||
.. # Took 9m29.899s
|
||||
# Compile the library.
|
||||
date; time make >& make.out; date
|
||||
# Took 9m29.899s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make check >& make_check.out; date
|
||||
.. # Took 10m8.337s
|
||||
# Test the library.
|
||||
date; time make check >& make_check.out; date
|
||||
# Took 10m8.337s
|
||||
|
||||
.. # Install the library.
|
||||
.. date; time make install >& make_install.out
|
||||
.. # Took 0m5.598s
|
||||
# Install the library.
|
||||
date; time make install >& make_install.out
|
||||
# Took 0m5.598s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out
|
||||
.. # Took 0m3.342s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out
|
||||
# Took 0m3.342s
|
||||
|
||||
|
||||
.. Using the HDF5 library
|
||||
.. ----------------------
|
||||
Using the HDF5 library
|
||||
----------------------
|
||||
|
||||
.. To use the HDF library, you must set environment variables:
|
||||
To use the HDF library, you must set environment variables:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export HDF5_DIR=$HOME/centos-stream-9/local/hdf5/1.14.1-2
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
.. export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
export HDF5_DIR=$HOME/centos-stream-9/local/hdf5/1.14.1-2
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
|
||||
@@ -1,221 +1,221 @@
|
||||
Compiling the ``kaiju`` software on CentOS-Stream 9
|
||||
=======================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. These instructions will walk you through the process of building and installing the ``kaiju`` software on a CentOS-Stream 9 system.
|
||||
These instructions will walk you through the process of building and installing the ``kaiju`` software on a CentOS-Stream 9 system.
|
||||
|
||||
.. These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
|
||||
.. In the instructions below, all code will be built and installed in a CentOS-Stream 9-specific subdirectory of the user home directory, i.e. ``$HOME/centos-stream-9``. This particular organization is not required - it is intended as an example of one possible way to segregate software that has been built for multiple systems.
|
||||
In the instructions below, all code will be built and installed in a CentOS-Stream 9-specific subdirectory of the user home directory, i.e. ``$HOME/centos-stream-9``. This particular organization is not required - it is intended as an example of one possible way to segregate software that has been built for multiple systems.
|
||||
|
||||
.. Building the serial version of the ``kaiju`` software on CentOS-Stream 9
|
||||
.. ----------------------------------------------------------------------------
|
||||
Building the serial version of the ``kaiju`` software on CentOS-Stream 9
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
.. Step 1: Configure build tools
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 1: Configure build tools
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Begin by configuring tools and libraries needed for the build:
|
||||
Begin by configuring tools and libraries needed for the build:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Add the Intel compilers to PATH.
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
# Add the Intel compilers to PATH.
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
.. # Set variables for HDF5.
|
||||
.. export HOST_SYSTEM=centos-stream-9
|
||||
.. export HDF5_DIR=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
.. export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
# Set variables for HDF5.
|
||||
export HOST_SYSTEM=centos-stream-9
|
||||
export HDF5_DIR=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
|
||||
.. # Configure CDF.
|
||||
.. source $HOME/$HOST_SYSTEM/local/cdf/3.9.0/bin/definitions.B
|
||||
# Configure CDF.
|
||||
source $HOME/$HOST_SYSTEM/local/cdf/3.9.0/bin/definitions.B
|
||||
|
||||
|
||||
.. Step 2: Create the build directory
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 2: Create the build directory
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Create a system-specific build directory.
|
||||
Create a system-specific build directory.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd $HOME
|
||||
.. mkdir HOST_SYSTEM
|
||||
.. cd $HOST_SYSTEM
|
||||
cd $HOME
|
||||
mkdir HOST_SYSTEM
|
||||
cd $HOST_SYSTEM
|
||||
|
||||
|
||||
.. Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
|
||||
.. .. code-block:: shell
|
||||
code-block:: shell
|
||||
|
||||
.. export KAIJU_BRANCH_NAME=development
|
||||
.. mkdir $KAIJU_BRANCH_NAME
|
||||
.. cd $KAIJU_BRANCH_NAME
|
||||
export KAIJU_BRANCH_NAME=development
|
||||
mkdir $KAIJU_BRANCH_NAME
|
||||
cd $KAIJU_BRANCH_NAME
|
||||
|
||||
|
||||
.. Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
|
||||
.. Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
|
||||
|
||||
.. This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ls kaiju
|
||||
.. analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
ls kaiju
|
||||
analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
|
||||
|
||||
.. Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd kaiju
|
||||
.. git switch $KAIJU_BRANCH_NAME
|
||||
cd kaiju
|
||||
git switch $KAIJU_BRANCH_NAME
|
||||
|
||||
|
||||
.. Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export KAIJU_BUILD_NAME=build_serial
|
||||
.. KAIJU_BUILD_PATH=$KAIJU_HOME/$KAIJU_BUILD_NAME
|
||||
.. mkdir -p $KAIJU_BUILD_PATH
|
||||
.. cd $KAIJU_BUILD_PATH
|
||||
export KAIJU_BUILD_NAME=build_serial
|
||||
KAIJU_BUILD_PATH=$KAIJU_HOME/$KAIJU_BUILD_NAME
|
||||
mkdir -p $KAIJU_BUILD_PATH
|
||||
cd $KAIJU_BUILD_PATH
|
||||
|
||||
|
||||
.. Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON .. >& cmake.out; date
|
||||
date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON >& cmake.out; date
|
||||
|
||||
|
||||
.. This command usually takes 2-3 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
This command usually takes 2-3 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. -- The Fortran compiler identification is Intel 2021.10.0.20230609
|
||||
.. -- Detecting Fortran compiler ABI info
|
||||
.. -- Detecting Fortran compiler ABI info - done
|
||||
.. -- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort - skipped
|
||||
.. -- Checking whether /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort supports Fortran 90
|
||||
.. -- Checking whether /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort supports Fortran 90 - yes
|
||||
.. -- Found HDF5: /home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/lib/libhdf5_fortran.so;/home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/lib/libhdf5.so;/usr/lib64/libz.so;/usr/lib64/libdl.a;/usr/lib64/libm.so (found version "1.14.1-2") found components: Fortran
|
||||
.. -- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
.. -- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
.. CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
.. Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
.. Call Stack (most recent call first):
|
||||
.. CMakeLists.txt:99 (include)
|
||||
-- The Fortran compiler identification is Intel 2021.10.0.20230609
|
||||
-- Detecting Fortran compiler ABI info
|
||||
-- Detecting Fortran compiler ABI info - done
|
||||
-- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort - skipped
|
||||
-- Checking whether /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort supports Fortran 90
|
||||
-- Checking whether /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort supports Fortran 90 - yes
|
||||
-- Found HDF5: /home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/lib/libhdf5_fortran.so;/home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/lib/libhdf5.so;/usr/lib64/libz.so;/usr/lib64/libdl.a;/usr/lib64/libm.so (found version "1.14.1-2") found components: Fortran
|
||||
-- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
-- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
Call Stack (most recent call first):
|
||||
CMakeLists.txt:99 (include)
|
||||
|
||||
|
||||
.. -------------------------
|
||||
.. Configuration summary ...
|
||||
.. System: localhost.localdomain
|
||||
.. OS: Linux
|
||||
.. Processor: x86_64
|
||||
.. Compiler: Intel / 2021.10.0.20230609
|
||||
.. /opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort
|
||||
.. HDF5 Wrapper: /home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/bin/h5fc
|
||||
.. Version: 3f4e147c / development
|
||||
.. Build Type: Release
|
||||
.. Base Flags: -fPIC -free -implicitnone -qopenmp
|
||||
.. Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals -ipo
|
||||
.. -------------------------
|
||||
-------------------------
|
||||
Configuration summary ...
|
||||
System: localhost.localdomain
|
||||
OS: Linux
|
||||
Processor: x86_64
|
||||
Compiler: Intel / 2021.10.0.20230609
|
||||
/opt/intel/oneapi/compiler/2023.2.0/linux/bin/intel64/ifort
|
||||
HDF5 Wrapper: /home/ewinter/centos-stream-9/local/hdf5/1.14.1-2/bin/h5fc
|
||||
Version: 3f4e147c / development
|
||||
Build Type: Release
|
||||
Base Flags: -fPIC -free -implicitnone -qopenmp
|
||||
Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals -ipo
|
||||
-------------------------
|
||||
|
||||
.. Adding CHIMP module ...
|
||||
.. EB IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
.. TP IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
.. Adding executable project.x
|
||||
.. Adding executable psd.x
|
||||
.. Adding executable push.x
|
||||
.. Adding executable slice.x
|
||||
.. Adding executable chop.x
|
||||
.. Adding executable trace.x
|
||||
.. Adding executable sctrack.x
|
||||
.. Adding executable calcdb.x
|
||||
.. Adding executable wpicheck.x
|
||||
.. Adding Gamera module ...
|
||||
.. Bricksize is 16
|
||||
.. IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/gamera/ICs/null.F90
|
||||
.. Adding executable gamera.x
|
||||
.. Adding Gamera Helio module ...
|
||||
.. IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
.. Adding executable gamhelio.x
|
||||
.. Adding ReMIX module ...
|
||||
.. Adding executable remix.x
|
||||
.. Adding RCM module ...
|
||||
.. RCM Grid is of size 180 x 361 x 160
|
||||
.. Adding executable rcm.x
|
||||
.. Adding Voltron module ...
|
||||
.. IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
.. Adding executable voltron.x
|
||||
.. -- Configuring done
|
||||
.. -- Generating done
|
||||
.. -- Build files have been written to: /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/build_serial
|
||||
Adding CHIMP module ...
|
||||
EB IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
TP IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
Adding executable project.x
|
||||
Adding executable psd.x
|
||||
Adding executable push.x
|
||||
Adding executable slice.x
|
||||
Adding executable chop.x
|
||||
Adding executable trace.x
|
||||
Adding executable sctrack.x
|
||||
Adding executable calcdb.x
|
||||
Adding executable wpicheck.x
|
||||
Adding Gamera module ...
|
||||
Bricksize is 16
|
||||
IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/gamera/ICs/null.F90
|
||||
Adding executable gamera.x
|
||||
Adding Gamera Helio module ...
|
||||
IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
Adding executable gamhelio.x
|
||||
Adding ReMIX module ...
|
||||
Adding executable remix.x
|
||||
Adding RCM module ...
|
||||
RCM Grid is of size 180 x 361 x 160
|
||||
Adding executable rcm.x
|
||||
Adding Voltron module ...
|
||||
IC file is /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
Adding executable voltron.x
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: /home/ewinter/centos-stream-9/cgs/kaiju/development/kaiju/build_serial
|
||||
|
||||
.. Step 5: Compile the ``kaiju`` software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 5: Compile the ``kaiju`` software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time make >& make.out; date
|
||||
date; time make >& make.out; date
|
||||
|
||||
|
||||
.. This command should complete in about 8-9 minutes on a CentOS-Stream 9 system running on an i9 processor. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
This command should complete in about 8-9 minutes on a CentOS-Stream 9 system running on an i9 processor. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. [ 99%] Linking Fortran executable bin/sctrack.x
|
||||
.. [ 99%] Built target sctrack.x
|
||||
.. [ 99%] Built target chimp
|
||||
.. [ 99%] Built target voltron
|
||||
.. Scanning dependencies of target remix.x
|
||||
.. [100%] Building Fortran object CMakeFiles/remix.x.dir/src/drivers/remix.F90.o
|
||||
.. [100%] Linking Fortran executable bin/remix.x
|
||||
.. [100%] Built target remix.x
|
||||
.. [100%] Built target remix
|
||||
.. [100%] Built target gamera
|
||||
[ 99%] Linking Fortran executable bin/sctrack.x
|
||||
[ 99%] Built target sctrack.x
|
||||
[ 99%] Built target chimp
|
||||
[ 99%] Built target voltron
|
||||
Scanning dependencies of target remix.x
|
||||
[100%] Building Fortran object CMakeFiles/remix.x.dir/src/drivers/remix.F90.o
|
||||
[100%] Linking Fortran executable bin/remix.x
|
||||
[100%] Built target remix.x
|
||||
[100%] Built target remix
|
||||
[100%] Built target gamera
|
||||
|
||||
.. To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ls bin
|
||||
.. calcdb.x gamhelio.x psd.x remix2rcm.x sctrack.x voltron.x
|
||||
.. chop.x kaitoy.x push.x remix2remix.x slice.x wpicheck.x
|
||||
.. gamera.x project.x rcm.x remix.x trace.x
|
||||
|
||||
|
||||
.. Using the ``kaiju`` software
|
||||
.. --------------------------------
|
||||
|
||||
.. Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
|
||||
|
||||
.. This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable (not the ``KAIJU_HOME`` environment variable). However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. $KAIJUHOME/build_serial/bin/gamera.x
|
||||
ls bin
|
||||
calcdb.x gamhelio.x psd.x remix2rcm.x sctrack.x voltron.x
|
||||
chop.x kaitoy.x push.x remix2remix.x slice.x wpicheck.x
|
||||
gamera.x project.x rcm.x remix.x trace.x
|
||||
|
||||
|
||||
Using the ``kaiju`` software
|
||||
--------------------------------
|
||||
|
||||
Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
|
||||
|
||||
This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable (not the ``KAIJU_HOME`` environment variable). However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$KAIJUHOME/build_serial/bin/gamera.x
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
Building a python environment for ``kaiju`` on CentOS-Stream 9
|
||||
==================================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based machine running CentOS-Stream 9 which can be used to run the ``kaiju`` code.
|
||||
This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based machine running CentOS-Stream 9 which can be used to run the ``kaiju`` code.
|
||||
|
||||
.. These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
|
||||
.. *A NOTE OF EXPLANATION:* These instructions install ``miniconda3`` into a CentOS-Stream 9-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
*A NOTE OF EXPLANATION:* These instructions install ``miniconda3`` into a CentOS-Stream 9-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
|
||||
.. Building the python environment
|
||||
.. -------------------------------
|
||||
Building the python environment
|
||||
-------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Download the installer.
|
||||
.. cd $HOME
|
||||
.. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Download the installer.
|
||||
cd $HOME
|
||||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # Run the installer.
|
||||
.. # Install into $HOME/centos-stream-9/miniconda3, use all defaults.
|
||||
.. bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Run the installer.
|
||||
# Install into $HOME/centos-stream-9/miniconda3, use all defaults.
|
||||
bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # NOTE: This installation *should* run "conda init", which *should*
|
||||
.. # add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
# NOTE: This installation *should* run "conda init", which *should*
|
||||
# add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
|
||||
.. # NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
.. # nothing else. This file just contains the path to the miniconda3
|
||||
.. # installation directory.
|
||||
# NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
# nothing else. This file just contains the path to the miniconda3
|
||||
# installation directory.
|
||||
|
||||
.. # Turn off auto-activation of base environment.
|
||||
.. # NOTE: This command creates ~/.condarc.
|
||||
.. conda config --set auto_activate_base false
|
||||
# Turn off auto-activation of base environment.
|
||||
# NOTE: This command creates ~/.condarc.
|
||||
conda config --set auto_activate_base false
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # NOTE: This creates the directory ~/.cache/conda.
|
||||
# NOTE: This creates the directory ~/.cache/conda.
|
||||
|
||||
.. # Now create the environment for kaiju, specifying only the python version.
|
||||
.. conda create -n kaiju-3.8 python=3.8
|
||||
# Now create the environment for kaiju, specifying only the python version.
|
||||
conda create -n kaiju-3.8 python=3.8
|
||||
|
||||
.. # NOTE: This adds the path to the new environment in
|
||||
.. # ~/.conda/environments.txt.
|
||||
# NOTE: This adds the path to the new environment in
|
||||
# ~/.conda/environments.txt.
|
||||
|
||||
.. # Activate the new environment.
|
||||
.. conda activate kaiju-3.8
|
||||
# Activate the new environment.
|
||||
conda activate kaiju-3.8
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # IMPORTANT: Use a pip cache specific to this machine.
|
||||
.. export PIP_CACHE_DIR=$HOME/centos-stream-9/pip_cache
|
||||
# IMPORTANT: Use a pip cache specific to this machine.
|
||||
export PIP_CACHE_DIR=$HOME/centos-stream-9/pip_cache
|
||||
|
||||
.. # Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
# Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
|
||||
.. # Install packages required by kaipy.
|
||||
.. pip install -r requirements.txt
|
||||
# Install packages required by kaipy.
|
||||
pip install -r requirements.txt
|
||||
|
||||
.. # Save the environment description.
|
||||
.. conda list >& kaiju-3.8-centos-stream-9-YYYYMMDD.env
|
||||
# Save the environment description.
|
||||
conda list >& kaiju-3.8-centos-stream-9-YYYYMMDD.env
|
||||
|
||||
|
||||
|
||||
.. Where ``requirements.txt`` is a text file containing:
|
||||
Where ``requirements.txt`` is a text file containing:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. ai.cdas
|
||||
.. alive_progress
|
||||
.. cartopy
|
||||
.. cdasws
|
||||
.. cdflib
|
||||
.. configparser
|
||||
.. dataclasses_json
|
||||
.. h5py
|
||||
.. jinja2
|
||||
.. matplotlib
|
||||
.. netCDF4
|
||||
.. progressbar
|
||||
.. pyhdf
|
||||
.. pytest
|
||||
.. scipy
|
||||
.. spacepy
|
||||
.. sunpy
|
||||
.. xarray
|
||||
ai.cdas
|
||||
alive_progress
|
||||
cartopy
|
||||
cdasws
|
||||
cdflib
|
||||
configparser
|
||||
dataclasses_json
|
||||
h5py
|
||||
jinja2
|
||||
matplotlib
|
||||
netCDF4
|
||||
progressbar
|
||||
pyhdf
|
||||
pytest
|
||||
scipy
|
||||
spacepy
|
||||
sunpy
|
||||
xarray
|
||||
|
||||
|
||||
.. Using the python environment
|
||||
.. ----------------------------
|
||||
Using the python environment
|
||||
----------------------------
|
||||
|
||||
.. Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
Building the ``kaiju`` software on CentOS-Stream 9
|
||||
==================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This page provides instructions for building the ``kaiju`` software on an Intel-based CentOS-Stream 9 system. These instructions were developed for using a CentOS-Stream 9 virtual machine running under VirtualBox on a Mac, but the instructions should work for other Linux distributions, although minor changes may be needed, especially if your Linux distribution does no use the ``yum`` package manager.
|
||||
This page provides instructions for building the ``kaiju`` software on an Intel-based CentOS-Stream 9 system. These instructions were developed for using a CentOS-Stream 9 virtual machine running under VirtualBox on a Mac, but the instructions should work for other Linux distributions, although minor changes may be needed, especially if your Linux distribution does no use the ``yum`` package manager.
|
||||
|
||||
.. NOTE: These instructions should also work, essentially unchanged, on a RHEL (Red Hat Enterprise Linux) system.
|
||||
NOTE: These instructions should also work, essentially unchanged, on a RHEL (Red Hat Enterprise Linux) system.
|
||||
|
||||
.. Step 0: Prepare your system
|
||||
.. ---------------------------
|
||||
Step 0: Prepare your system
|
||||
---------------------------
|
||||
|
||||
.. A few tools must be installed on your system before you begin building the ``kaiju`` software. These instructions assume you have permission to use ``sudo`` to install software.
|
||||
A few tools must be installed on your system before you begin building the ``kaiju`` software. These instructions assume you have permission to use ``sudo`` to install software.
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. #!shell
|
||||
.. sudo yum install epel-release
|
||||
.. sudo yum install make
|
||||
.. sudo yum install gcc
|
||||
.. sudo yum install cmake
|
||||
.. sudo yum install git
|
||||
.. sudo yum install git-lfs
|
||||
.. sudo yum install geos-devel
|
||||
#!shell
|
||||
sudo yum install epel-release
|
||||
sudo yum install make
|
||||
sudo yum install gcc
|
||||
sudo yum install cmake
|
||||
sudo yum install git
|
||||
sudo yum install git-lfs
|
||||
sudo yum install geos-devel
|
||||
|
||||
|
||||
.. Install the Intel compiler suite
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Install the Intel compiler suite
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. The ``kaiju`` software is developed using the Intel compiler suite, available `here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_. The compiler suite is free, but comes in several optional parts. You will need to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_ and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_. Once installed, this software should be available on your system under ``/opt/intel``.
|
||||
The ``kaiju`` software is developed using the Intel compiler suite, available `here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_. The compiler suite is free, but comes in several optional parts. You will need to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_ and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_. Once installed, this software should be available on your system under ``/opt/intel``.
|
||||
|
||||
.. Once the Intel tools are installed, you will need to make them available during the build process. Set up the tools as follows:
|
||||
Once the Intel tools are installed, you will need to make them available during the build process. Set up the tools as follows:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. #!shell
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
#!shell
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
|
||||
.. Step 1: Build prerequisite libraries
|
||||
.. ------------------------------------
|
||||
Step 1: Build prerequisite libraries
|
||||
------------------------------------
|
||||
|
||||
.. NASA CDF library
|
||||
.. ^^^^^^^^^^^^^^^^
|
||||
NASA CDF library
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is used in parts of the ``kaiju`` post-processing software when fetching spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to building the ``kaiju`` software, the CDF library must be built and installed on your system, since it is not available via the ``yum`` package manager.
|
||||
The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is used in parts of the ``kaiju`` post-processing software when fetching spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to building the ``kaiju`` software, the CDF library must be built and installed on your system, since it is not available via the ``yum`` package manager.
|
||||
|
||||
.. Instructions for building and installing the CDF library on your Mac are available `here <centos-stream-9_build_cdf>`_.
|
||||
Instructions for building and installing the CDF library on your Mac are available `here <centos-stream-9_build_cdf>`__.
|
||||
|
||||
.. HDF5 library
|
||||
.. ^^^^^^^^^^^^
|
||||
HDF5 library
|
||||
^^^^^^^^^^^^
|
||||
|
||||
.. The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used extensively for data storage in the ``kaiju`` software. The HDF5 software is available via ``yum``\ , but this version will not link with the ``kaiju`` software when built with the Intel compiler suite. Prior to building the ``kaiju`` software, the HDF5 library must be built and installed on your system.
|
||||
The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used extensively for data storage in the ``kaiju`` software. The HDF5 software is available via ``yum``\ , but this version will not link with the ``kaiju`` software when built with the Intel compiler suite. Prior to building the ``kaiju`` software, the HDF5 library must be built and installed on your system.
|
||||
|
||||
.. Instructions for building and installing the HDF5 library on your Mac are available `here <centos-stream-9_build_hdf5>`_.
|
||||
Instructions for building and installing the HDF5 library on your Mac are available `here <centos-stream-9_build_hdf5>`__.
|
||||
|
||||
.. NOTE: If you successfully build the ``kaiju`` software using the ``yum``\ -installed version of HDF5 on CentOS-Stream 9, please let us know how you did it!
|
||||
NOTE: If you successfully build the ``kaiju`` software using the ``yum``\ -installed version of HDF5 on CentOS-Stream 9, please let us know how you did it!
|
||||
|
||||
.. Step 2: Create a python environment
|
||||
.. -----------------------------------
|
||||
Step 2: Create a python environment
|
||||
-----------------------------------
|
||||
|
||||
.. Most of the ``kaiju`` software for pre-processing, post-processing, and analysis is written in `Python <https://www.python.org/>`_. Python is available in many forms (or 'distributions'), but we recommend use of the `Miniconda] distribution <https://docs.conda.io/en/latest/miniconda.html>`_ for simplicity and compactness.
|
||||
Most of the ``kaiju`` software for pre-processing, post-processing, and analysis is written in `Python <https://www.python.org/>`_. Python is available in many forms (or 'distributions'), but we recommend use of the `Miniconda] distribution <https://docs.conda.io/en/latest/miniconda.html>`_ for simplicity and compactness.
|
||||
|
||||
.. Instructions for installing python and building a python environment on your Mac are available `here <centos-stream-9_build_python>`_.
|
||||
Instructions for installing python and building a python environment on your Mac are available `here <centos-stream-9_build_python>`__.
|
||||
|
||||
.. Step 3: Compile the ``kaiju`` software
|
||||
.. ------------------------------------------
|
||||
Step 3: Compile the ``kaiju`` software
|
||||
------------------------------------------
|
||||
|
||||
.. The ``kaiju`` software can be built in serial or MPI versions. The serial version should be used when running the code on a single computer. The MPI version should be used when running on an HPC system (a supercomputer).
|
||||
The ``kaiju`` software can be built in serial or MPI versions. The serial version should be used when running the code on a single computer. The MPI version should be used when running on an HPC system (a supercomputer).
|
||||
|
||||
.. Instructions for building the serial version of the ``kaiju`` software on CentOS-Stream 9 are available `here <centos-stream-9_build_kaiju>`_. The MPI version of ``kaiju`` is not supported on CentOS-Stream 9 at this time.
|
||||
Instructions for building the serial version of the ``kaiju`` software on CentOS-Stream 9 are available `here <centos-stream-9_build_kaiju>`__. The MPI version of ``kaiju`` is not supported on CentOS-Stream 9 at this time.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Build guides documentation
|
||||
Build guides
|
||||
======================================
|
||||
|
||||
.. toctree::
|
||||
|
||||
@@ -1,134 +1,134 @@
|
||||
Building the ``kaiju`` software on MacOS
|
||||
========================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
.. This page provides instructions for building the ``kaiju`` software on an
|
||||
.. Intel-based MacOS system. These instructions were developed for MacOS Ventura,
|
||||
.. but the instructions should work for other MacOS versions.
|
||||
Introduction
|
||||
------------
|
||||
This page provides instructions for building the ``kaiju`` software on an
|
||||
Intel-based MacOS system. These instructions were developed for MacOS Ventura,
|
||||
but the instructions should work for other MacOS versions.
|
||||
|
||||
.. Step 0: Prepare your Mac
|
||||
.. ------------------------
|
||||
Step 0: Prepare your Mac
|
||||
------------------------
|
||||
|
||||
.. A few tools must be installed on your Mac before you begin building the
|
||||
.. ``kaiju`` software.
|
||||
A few tools must be installed on your Mac before you begin building the
|
||||
``kaiju`` software.
|
||||
|
||||
.. Install Xcode
|
||||
.. ~~~~~~~~~~~~~
|
||||
Install Xcode
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
.. `Xcode <https://developer.apple.com/xcode/>`_ is the standard software
|
||||
.. development suite for MacOS systems. You can download and install Xcode from
|
||||
.. the MacOS App Store on your Mac.
|
||||
`Xcode <https://developer.apple.com/xcode/>`_ is the standard software
|
||||
development suite for MacOS systems. You can download and install Xcode from
|
||||
the MacOS App Store on your Mac.
|
||||
|
||||
.. Install HomeBrew
|
||||
.. ~~~~~~~~~~~~~~~~
|
||||
Install HomeBrew
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. `HomeBrew <https://brew.sh/>`_ is a software package management system for
|
||||
.. MacOS. HomeBrew will be used to install tools required for building the
|
||||
.. ``kaiju`` software.
|
||||
`HomeBrew <https://brew.sh/>`_ is a software package management system for
|
||||
MacOS. HomeBrew will be used to install tools required for building the
|
||||
``kaiju`` software.
|
||||
|
||||
.. There are other package management systems available for MacOS. If you choose
|
||||
.. to use an alternate package management system, replace these instructions with
|
||||
.. the equivalent instructions for your chosen system.
|
||||
There are other package management systems available for MacOS. If you choose
|
||||
to use an alternate package management system, replace these instructions with
|
||||
the equivalent instructions for your chosen system.
|
||||
|
||||
.. Install ``cmake``
|
||||
.. ~~~~~~~~~~~~~~~~~
|
||||
Install ``cmake``
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. `CMake <https://cmake.org/>`_ is used to control the build process for the
|
||||
.. ``kaiju`` software. This tool is not provided on MacOS systems. You can
|
||||
.. install it with HomeBrew with the command:
|
||||
`CMake <https://cmake.org/>`_ is used to control the build process for the
|
||||
``kaiju`` software. This tool is not provided on MacOS systems. You can
|
||||
install it with HomeBrew with the command:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. brew install cmake
|
||||
brew install cmake
|
||||
|
||||
.. This command will install ``cmake`` and its support files under ``/usr/local``
|
||||
.. on your Mac.
|
||||
This command will install ``cmake`` and its support files under ``/usr/local``
|
||||
on your Mac.
|
||||
|
||||
.. Install the Intel compiler suite
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Install the Intel compiler suite
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. The ``kaiju`` software is developed using the Intel compiler suite, available
|
||||
.. `here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_.
|
||||
.. The compiler suite is free, but comes in several optional parts. You will need
|
||||
.. to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_
|
||||
.. and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_.
|
||||
.. Once installed, this software should be available on your Mac under
|
||||
.. ``/opt/intel``.
|
||||
The ``kaiju`` software is developed using the Intel compiler suite, available
|
||||
`here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_.
|
||||
The compiler suite is free, but comes in several optional parts. You will need
|
||||
to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_
|
||||
and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_.
|
||||
Once installed, this software should be available on your Mac under
|
||||
``/opt/intel``.
|
||||
|
||||
.. Once the Intel tools are installed, you will need to make them available
|
||||
.. during the build process. Add the Intel tools to your command path as follows:
|
||||
Once the Intel tools are installed, you will need to make them available
|
||||
during the build process. Add the Intel tools to your command path as follows:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export INTEL_HOME=/opt/intel # Or wherever you installed it
|
||||
.. export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
export INTEL_HOME=/opt/intel # Or wherever you installed it
|
||||
export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
|
||||
.. Step 1: Build prerequisite libraries
|
||||
.. ------------------------------------
|
||||
Step 1: Build prerequisite libraries
|
||||
------------------------------------
|
||||
|
||||
.. NASA CDF library
|
||||
.. ~~~~~~~~~~~~~~~~
|
||||
NASA CDF library
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is
|
||||
.. used in parts of the ``kaiju`` post-processing software when fetching
|
||||
.. spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to
|
||||
.. building the ``kaiju`` software, the CDF library must be built and installed
|
||||
.. on your Mac, since it is not available via the HomeBrew package manager.
|
||||
The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is
|
||||
used in parts of the ``kaiju`` post-processing software when fetching
|
||||
spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to
|
||||
building the ``kaiju`` software, the CDF library must be built and installed
|
||||
on your Mac, since it is not available via the HomeBrew package manager.
|
||||
|
||||
.. Instructions for building and installing the CDF library on your Mac are
|
||||
.. available :doc:`here <macos_build_cdf>`.
|
||||
Instructions for building and installing the CDF library on your Mac are
|
||||
available :doc:`here <macos_build_cdf>`.
|
||||
|
||||
.. HDF5 library
|
||||
.. ~~~~~~~~~~~~
|
||||
HDF5 library
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used
|
||||
.. extensively for data storage in the ``kaiju`` software. The HDF5 software is
|
||||
.. available via HomeBrew, but this version will not link with the ``kaiju``
|
||||
.. software when built with the Intel compiler suite. Prior to building the
|
||||
.. ``kaiju`` software, the HDF5 library must be built and installed on your Mac.
|
||||
The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used
|
||||
extensively for data storage in the ``kaiju`` software. The HDF5 software is
|
||||
available via HomeBrew, but this version will not link with the ``kaiju``
|
||||
software when built with the Intel compiler suite. Prior to building the
|
||||
``kaiju`` software, the HDF5 library must be built and installed on your Mac.
|
||||
|
||||
.. Instructions for building and installing the HDF5 library on your Mac are
|
||||
.. available :doc:`here <macos_build_hdf5>`.
|
||||
Instructions for building and installing the HDF5 library on your Mac are
|
||||
available :doc:`here <macos_build_hdf5>`.
|
||||
|
||||
.. NOTE: If you successfully build the ``kaiju`` software using the
|
||||
.. HomeBrew-installed version of HDF5 on MacOS, please let us know how you did
|
||||
.. it!
|
||||
NOTE: If you successfully build the ``kaiju`` software using the
|
||||
HomeBrew-installed version of HDF5 on MacOS, please let us know how you did
|
||||
it!
|
||||
|
||||
.. GEOS library
|
||||
.. ~~~~~~~~~~~~
|
||||
GEOS library
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. The `GEOS <https://libgeos.org/>`_ library is needed for certain
|
||||
.. geography-related coordinate transformations. It can be installed with the
|
||||
.. command:
|
||||
The `GEOS <https://libgeos.org/>`_ library is needed for certain
|
||||
geography-related coordinate transformations. It can be installed with the
|
||||
command:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. brew install geos
|
||||
brew install geos
|
||||
|
||||
|
||||
.. Step 2: Create a python environment
|
||||
.. -----------------------------------
|
||||
Step 2: Create a python environment
|
||||
-----------------------------------
|
||||
|
||||
.. Most of the ``kaiju`` software for pre-processing, post-processing, and
|
||||
.. analysis is written in `Python <https://www.python.org/>`_. Python is
|
||||
.. available in many forms (or 'distributions'), but we recommend use of the
|
||||
.. `Miniconda distribution <https://docs.conda.io/en/latest/miniconda.html>`_
|
||||
.. for simplicity and compactness.
|
||||
Most of the ``kaiju`` software for pre-processing, post-processing, and
|
||||
analysis is written in `Python <https://www.python.org/>`_. Python is
|
||||
available in many forms (or 'distributions'), but we recommend use of the
|
||||
`Miniconda distribution <https://docs.conda.io/en/latest/miniconda.html>`_
|
||||
for simplicity and compactness.
|
||||
|
||||
.. Instructions for installing python and building a python environment on your
|
||||
.. Mac are available :doc:`here <macos_build_python>`.
|
||||
Instructions for installing python and building a python environment on your
|
||||
Mac are available :doc:`here <macos_build_python>`.
|
||||
|
||||
.. Step 3: Compile the ``kaiju`` software
|
||||
.. ------------------------------------------
|
||||
Step 3: Compile the ``kaiju`` software
|
||||
------------------------------------------
|
||||
|
||||
.. The ``kaiju`` software can be built in serial or MPI versions. The serial
|
||||
.. version should be used when running the code on a single computer, such as a laptop. The MPI version should be used when running on an HPC system
|
||||
.. (a supercomputer).
|
||||
The ``kaiju`` software can be built in serial or MPI versions. The serial
|
||||
version should be used when running the code on a single computer, such as a laptop. The MPI version should be used when running on an HPC system
|
||||
(a supercomputer).
|
||||
|
||||
.. Instructions for building the serial version of the ``kaiju`` software on
|
||||
.. MacOS are available :doc:`here <macos_build_kaiju>`. The MPI version of
|
||||
.. ``kaiju`` is not supported on MacOS at this time.
|
||||
Instructions for building the serial version of the ``kaiju`` software on
|
||||
MacOS are available :doc:`here <macos_build_kaiju>`. The MPI version of
|
||||
``kaiju`` is not supported on MacOS at this time.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
@@ -1,59 +1,59 @@
|
||||
Building and installing the NASA CDF library on MacOS
|
||||
=====================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This page describes how to build and install CDF 3.9.0 on an Intel-based Mac running MacOS Ventura for use with the kaiju software. Version 3.9.0 is the most recent version of the `NASA CDF library <https://cdf.gsfc.nasa.gov/>`_ as of 2023-07-05. The build is performed using the default ``gcc`` compiler provided by Apple.
|
||||
This page describes how to build and install CDF 3.9.0 on an Intel-based Mac running MacOS Ventura for use with the kaiju software. Version 3.9.0 is the most recent version of the `NASA CDF library <https://cdf.gsfc.nasa.gov/>`_ as of 2023-07-05. The build is performed using the default ``gcc`` compiler provided by Apple.
|
||||
|
||||
.. Building and installing the CDF library
|
||||
.. ---------------------------------------
|
||||
Building and installing the CDF library
|
||||
---------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Specify the name for this machine.
|
||||
.. export HOST_SYSTEM=ventura
|
||||
# Specify the name for this machine.
|
||||
export HOST_SYSTEM=ventura
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/cdf/3.9.0
|
||||
.. mkdir -p $BUILD_ROOT/src
|
||||
.. cd $BUILD_ROOT/src
|
||||
# Specify and create the root of the build tree.
|
||||
export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/cdf/3.9.0
|
||||
mkdir -p $BUILD_ROOT/src
|
||||
cd $BUILD_ROOT/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf cdf39_0-dist-all.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd cdf39_0-dist
|
||||
# Move into the code directory.
|
||||
cd cdf39_0-dist
|
||||
|
||||
.. # Patch the Makefile (required for a MacOS build).
|
||||
.. cp Makefile Makefile.orig
|
||||
.. cat Makefile.orig | sed 's/LDLIB=-L\$(XCODEDir)\/Platforms\/MacOSX.platform\/Developer\/SDKs\/MacOSX.sdk\/usr\/lib/LDLIB=-L\$(XCODEDir)\/SDKs\/MacOSX.sdk\/usr\/lib/' > Makefile
|
||||
# Patch the Makefile (required for a MacOS build).
|
||||
cp Makefile Makefile.orig
|
||||
cat Makefile.orig | sed 's/LDLIB=-L\$(XCODEDir)\/Platforms\/MacOSX.platform\/Developer\/SDKs\/MacOSX.sdk\/usr\/lib/LDLIB=-L\$(XCODEDir)\/SDKs\/MacOSX.sdk\/usr\/lib/' > Makefile
|
||||
|
||||
.. # Build the library using the Apple compiler for Intel hardware.
|
||||
.. date; time make OS=macosx ENV=x86_64 all >& make.out; date
|
||||
.. # Took 0m33.062s
|
||||
# Build the library using the Apple compiler for Intel hardware.
|
||||
date; time make OS=macosx ENV=x86_64 all >& make.out; date
|
||||
# Took 0m33.062s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make test >& make_test.out; date
|
||||
.. # Took 0m2.396s
|
||||
# Test the library.
|
||||
date; time make test >& make_test.out; date
|
||||
# Took 0m2.396s
|
||||
|
||||
.. # Install the library in a version-specific subdirectory.
|
||||
.. date; time make INSTALLDIR=$BUILD_ROOT install >& make_install.out; date
|
||||
.. # Took 0m5.681s
|
||||
# Install the library in a version-specific subdirectory.
|
||||
date; time make INSTALLDIR=$BUILD_ROOT install >& make_install.out; date
|
||||
# Took 0m5.681s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out; date
|
||||
.. # Took 0m0.837s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out; date
|
||||
# Took 0m0.837s
|
||||
|
||||
|
||||
.. Using the CDF library
|
||||
.. ---------------------
|
||||
Using the CDF library
|
||||
---------------------
|
||||
|
||||
.. To use this library, you must run the setup script:
|
||||
To use this library, you must run the setup script:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source $HOME/ventura/local/cdf/3.9.0/bin/definitions.B
|
||||
source $HOME/ventura/local/cdf/3.9.0/bin/definitions.B
|
||||
|
||||
@@ -1,74 +1,74 @@
|
||||
Building and installing the HDF5 library on MacOS
|
||||
=================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to build and install HDF5 on an Intel-based Mac running MacOS Ventura for use with the kaiju software.
|
||||
This file describes how to build and install HDF5 on an Intel-based Mac running MacOS Ventura for use with the kaiju software.
|
||||
|
||||
.. These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
|
||||
.. Building and installing the HDF5 library
|
||||
.. ----------------------------------------
|
||||
Building and installing the HDF5 library
|
||||
----------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Use the Intel compiler.
|
||||
.. export INTEL_HOME=/opt/intel
|
||||
.. export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
# Use the Intel compiler.
|
||||
export INTEL_HOME=/opt/intel
|
||||
export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
|
||||
.. # Specify the name for this machine.
|
||||
.. export HOST_SYSTEM=ventura
|
||||
# Specify the name for this machine.
|
||||
export HOST_SYSTEM=ventura
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
.. mkdir -p $BUILD_ROOT/src
|
||||
.. cd $BUILD_ROOT/src
|
||||
# Specify and create the root of the build tree.
|
||||
export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
mkdir -p $BUILD_ROOT/src
|
||||
cd $BUILD_ROOT/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd hdf5-1.14.1-2
|
||||
# Move into the code directory.
|
||||
cd hdf5-1.14.1-2
|
||||
|
||||
.. # Configure the library with Fortran support.
|
||||
.. date; time \
|
||||
.. ./configure \
|
||||
.. FC=ifort \
|
||||
.. --prefix=$BUILD_ROOT \
|
||||
.. --enable-fortran \
|
||||
.. >& configure.out; date
|
||||
.. # Took 2m9.603s
|
||||
# Configure the library with Fortran support.
|
||||
date; time \
|
||||
./configure \
|
||||
FC=ifort \
|
||||
--prefix=$BUILD_ROOT \
|
||||
--enable-fortran \
|
||||
>& configure.out; date
|
||||
# Took 2m9.603s
|
||||
|
||||
.. # Compile the library.
|
||||
.. date; time make >& make.out; date
|
||||
.. # Took 10m33.074s
|
||||
# Compile the library.
|
||||
date; time make >& make.out; date
|
||||
# Took 10m33.074s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make check >& make_check.out; date
|
||||
.. # Took 15m17.099s
|
||||
# Test the library.
|
||||
date; time make check >& make_check.out; date
|
||||
# Took 15m17.099s
|
||||
|
||||
.. # Install the library.
|
||||
.. date; time make install >& make_install.out
|
||||
.. # Took 0m8.438s
|
||||
# Install the library.
|
||||
date; time make install >& make_install.out
|
||||
# Took 0m8.438s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out
|
||||
.. # Took 0m7.811s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out
|
||||
# Took 0m7.811s
|
||||
|
||||
|
||||
.. Using the HDF5 library
|
||||
.. ----------------------
|
||||
Using the HDF5 library
|
||||
----------------------
|
||||
|
||||
.. To use the HDF library, you must set environment variables:
|
||||
To use the HDF library, you must set environment variables:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export HDF5_DIR=$HOME/ventura/local/hdf5/1.12.1
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export HDF5_DIR=$HOME/ventura/local/hdf5/1.12.1
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
|
||||
@@ -1,218 +1,218 @@
|
||||
Building the ``kaiju`` software (serial only) on a Mac
|
||||
==========================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. These instructions will walk you through the process of building and installing the ``kaiju`` software on an Intel-based Macintosh computer running the MacOS Ventura operating system.
|
||||
These instructions will walk you through the process of building and installing the ``kaiju`` software on an Intel-based Macintosh computer running the MacOS Ventura operating system.
|
||||
|
||||
.. These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
|
||||
.. Unlike most HPC systems, a Mac does not use the ``module`` system to manage the versions of software packages available to the user. Compilers and libraries must be installed by the user before starting on building the ``kaiju`` software.
|
||||
Unlike most HPC systems, a Mac does not use the ``module`` system to manage the versions of software packages available to the user. Compilers and libraries must be installed by the user before starting on building the ``kaiju`` software.
|
||||
|
||||
.. Building the serial version of the ``kaiju`` software
|
||||
.. ---------------------------------------------------------
|
||||
Building the serial version of the ``kaiju`` software
|
||||
---------------------------------------------------------
|
||||
|
||||
.. Step 1: Configure the required software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 1: Configure the required software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Set environment variables for the Intel fortran compiler (adjust the path as needed for your machine):
|
||||
Set environment variables for the Intel fortran compiler (adjust the path as needed for your machine):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export INTEL_HOME=/opt/intel
|
||||
.. export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
export INTEL_HOME=/opt/intel
|
||||
export PATH=$INTEL_HOME/oneapi/compiler/latest/mac/bin/intel64:$PATH
|
||||
|
||||
|
||||
.. Set environment variables for CDF (adjust the paths as needed for your machine):
|
||||
Set environment variables for CDF (adjust the paths as needed for your machine):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source $HOME/ventura/local/cdf/3.9.0/bin/definitions.B
|
||||
source $HOME/ventura/local/cdf/3.9.0/bin/definitions.B
|
||||
|
||||
|
||||
.. Set environment variables for HDF5 (adjust the paths as needed for your machine):
|
||||
Set environment variables for HDF5 (adjust the paths as needed for your machine):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export HDF5_DIR=$HOME/ventura/local/hdf5/1.14.1-2
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export HDF5_DIR=$HOME/ventura/local/hdf5/1.14.1-2
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
|
||||
|
||||
|
||||
.. Step 2: Create the build directory
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 2: Create the build directory
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Create a ``ventura``-specific build directory.
|
||||
Create a ``ventura``-specific build directory.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd $HOME
|
||||
.. mkdir -p ventura
|
||||
.. cd ventura
|
||||
cd $HOME
|
||||
mkdir -p ventura
|
||||
cd ventura
|
||||
|
||||
.. Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. mkdir development
|
||||
.. cd development
|
||||
mkdir development
|
||||
cd development
|
||||
|
||||
|
||||
|
||||
.. Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
|
||||
.. Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
|
||||
|
||||
.. This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ls kaiju
|
||||
.. analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
ls kaiju
|
||||
analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
|
||||
|
||||
.. Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd kaiju
|
||||
.. git switch development
|
||||
cd kaiju
|
||||
git switch development
|
||||
|
||||
|
||||
|
||||
.. Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. mkdir build_serial
|
||||
.. cd build_serial
|
||||
mkdir build_serial
|
||||
cd build_serial
|
||||
|
||||
|
||||
.. Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON .. >& cmake.out; date
|
||||
date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON >& cmake.out; date
|
||||
|
||||
|
||||
.. This command usually takes less than 10 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
This command usually takes less than 10 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. -- The Fortran compiler identification is Intel 2021.9.0.20230302
|
||||
.. -- Detecting Fortran compiler ABI info
|
||||
.. -- Detecting Fortran compiler ABI info - done
|
||||
.. -- Check for working Fortran compiler: /opt/intel/oneapi/compiler/latest/mac/bin/intel64/ifort - skipped
|
||||
.. -- Found HDF5: /Users/winteel1/ventura/local/hdf5/1.14.1-2/lib/libhdf5_fortran.dylib;/Users/winteel1/ventura/local/hdf5/1.14.1-2/lib/libhdf5.dylib;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libz.tbd;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libdl.tbd;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libm.tbd (found version "1.14.1-2") found components: Fortran
|
||||
.. -- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
.. -- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
.. CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
.. Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
.. Call Stack (most recent call first):
|
||||
.. CMakeLists.txt:99 (include)
|
||||
-- The Fortran compiler identification is Intel 2021.9.0.20230302
|
||||
-- Detecting Fortran compiler ABI info
|
||||
-- Detecting Fortran compiler ABI info - done
|
||||
-- Check for working Fortran compiler: /opt/intel/oneapi/compiler/latest/mac/bin/intel64/ifort - skipped
|
||||
-- Found HDF5: /Users/winteel1/ventura/local/hdf5/1.14.1-2/lib/libhdf5_fortran.dylib;/Users/winteel1/ventura/local/hdf5/1.14.1-2/lib/libhdf5.dylib;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libz.tbd;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libdl.tbd;/Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/lib/libm.tbd (found version "1.14.1-2") found components: Fortran
|
||||
-- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
-- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
Call Stack (most recent call first):
|
||||
CMakeLists.txt:99 (include)
|
||||
|
||||
|
||||
.. -------------------------
|
||||
.. Configuration summary ...
|
||||
.. System: C02FC1QCMD6T-ML
|
||||
.. OS: Darwin
|
||||
.. Processor: x86_64
|
||||
.. Compiler: Intel / 2021.9.0.20230302
|
||||
.. /opt/intel/oneapi/compiler/latest/mac/bin/intel64/ifort
|
||||
.. HDF5 Wrapper: /Users/winteel1/ventura/local/hdf5/1.14.1-2/bin/h5fc
|
||||
.. Version: 339707e4 / ewinter-python_environment_upgrade
|
||||
.. Build Type: Release
|
||||
.. Base Flags: -fPIC -Wl,-stack_size,0x40000000,-stack_addr,0xf0000000 -xHost -free -implicitnone -qopenmp
|
||||
.. Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals
|
||||
.. -------------------------
|
||||
-------------------------
|
||||
Configuration summary ...
|
||||
System: C02FC1QCMD6T-ML
|
||||
OS: Darwin
|
||||
Processor: x86_64
|
||||
Compiler: Intel / 2021.9.0.20230302
|
||||
/opt/intel/oneapi/compiler/latest/mac/bin/intel64/ifort
|
||||
HDF5 Wrapper: /Users/winteel1/ventura/local/hdf5/1.14.1-2/bin/h5fc
|
||||
Version: 339707e4 / ewinter-python_environment_upgrade
|
||||
Build Type: Release
|
||||
Base Flags: -fPIC -Wl,-stack_size,0x40000000,-stack_addr,0xf0000000 -xHost -free -implicitnone -qopenmp
|
||||
Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals
|
||||
-------------------------
|
||||
|
||||
.. Adding CHIMP module ...
|
||||
.. EB IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
.. TP IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
.. Adding executable project.x
|
||||
.. Adding executable psd.x
|
||||
.. Adding executable push.x
|
||||
.. Adding executable slice.x
|
||||
.. Adding executable chop.x
|
||||
.. Adding executable trace.x
|
||||
.. Adding executable sctrack.x
|
||||
.. Adding executable calcdb.x
|
||||
.. Adding executable wpicheck.x
|
||||
.. Adding Gamera module ...
|
||||
.. Bricksize is 16
|
||||
.. IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/gamera/ICs/null.F90
|
||||
.. Adding executable gamera.x
|
||||
.. Adding Gamera Helio module ...
|
||||
.. IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
.. Adding executable gamhelio.x
|
||||
.. Adding ReMIX module ...
|
||||
.. Adding executable remix.x
|
||||
.. Adding RCM module ...
|
||||
.. RCM Grid is of size 180 x 361 x 160
|
||||
.. Adding executable rcm.x
|
||||
.. Adding Voltron module ...
|
||||
.. IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
.. Adding executable voltron.x
|
||||
.. -- Configuring done (7.6s)
|
||||
.. -- Generating done (0.3s)
|
||||
.. -- Build files have been written to: /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/build_serial
|
||||
Adding CHIMP module ...
|
||||
EB IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
TP IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
Adding executable project.x
|
||||
Adding executable psd.x
|
||||
Adding executable push.x
|
||||
Adding executable slice.x
|
||||
Adding executable chop.x
|
||||
Adding executable trace.x
|
||||
Adding executable sctrack.x
|
||||
Adding executable calcdb.x
|
||||
Adding executable wpicheck.x
|
||||
Adding Gamera module ...
|
||||
Bricksize is 16
|
||||
IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/gamera/ICs/null.F90
|
||||
Adding executable gamera.x
|
||||
Adding Gamera Helio module ...
|
||||
IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
Adding executable gamhelio.x
|
||||
Adding ReMIX module ...
|
||||
Adding executable remix.x
|
||||
Adding RCM module ...
|
||||
RCM Grid is of size 180 x 361 x 160
|
||||
Adding executable rcm.x
|
||||
Adding Voltron module ...
|
||||
IC file is /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
Adding executable voltron.x
|
||||
-- Configuring done (7.6s)
|
||||
-- Generating done (0.3s)
|
||||
-- Build files have been written to: /Users/winteel1/ventura/cgs/kaiju/ewinter-python_environment_upgrade/kaiju/build_serial
|
||||
|
||||
.. Step 5: Compile the ``kaiju`` software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 5: Compile the ``kaiju`` software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time make >& make.out; date
|
||||
date; time make >& make.out; date
|
||||
|
||||
|
||||
.. This command should complete in about 3-4 minutes on a modern Mac. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
This command should complete in about 3-4 minutes on a modern Mac. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. [ 99%] Linking Fortran static library libvoltlib.a
|
||||
.. [ 99%] Built target voltlib
|
||||
.. [100%] Building Fortran object CMakeFiles/voltron.x.dir/src/drivers/voltronx.F90.o
|
||||
.. [100%] Linking Fortran executable bin/voltron.x
|
||||
.. [100%] Built target voltron.x
|
||||
.. [100%] Built target voltron
|
||||
[ 99%] Linking Fortran static library libvoltlib.a
|
||||
[ 99%] Built target voltlib
|
||||
[100%] Building Fortran object CMakeFiles/voltron.x.dir/src/drivers/voltronx.F90.o
|
||||
[100%] Linking Fortran executable bin/voltron.x
|
||||
[100%] Built target voltron.x
|
||||
[100%] Built target voltron
|
||||
|
||||
.. To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ls bin
|
||||
.. calcdb.x chop.x gamera.x gamhelio.x kaitoy.x project.x psd.x push.x rcm.x remix2rcm.x remix2remix.x remix.x sctrack.x slice.x trace.x voltron.x wpicheck.x
|
||||
ls bin
|
||||
calcdb.x chop.x gamera.x gamhelio.x kaitoy.x project.x psd.x push.x rcm.x remix2rcm.x remix2remix.x remix.x sctrack.x slice.x trace.x voltron.x wpicheck.x
|
||||
|
||||
|
||||
.. Using the ``kaiju`` software
|
||||
.. --------------------------------
|
||||
Using the ``kaiju`` software
|
||||
--------------------------------
|
||||
|
||||
.. Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
|
||||
|
||||
.. This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable. However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. $KAIJUHOME/build_serial/bin/gamera.x
|
||||
|
||||
This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable. However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$KAIJUHOME/build_serial/bin/gamera.x
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
Building a python environment for ``kaiju`` on MacOS
|
||||
========================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based Ventura Mac which can be used to run the ``kaiju`` code.
|
||||
This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based Ventura Mac which can be used to run the ``kaiju`` code.
|
||||
|
||||
.. These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
|
||||
.. **NOTE**: These instructions install ``miniconda3`` into a ventura-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
**NOTE**: These instructions install ``miniconda3`` into a ventura-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
|
||||
.. Building the python environment
|
||||
.. -------------------------------
|
||||
Building the python environment
|
||||
-------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Download the installer.
|
||||
.. cd $HOME
|
||||
.. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Download the installer.
|
||||
cd $HOME
|
||||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # Run the installer.
|
||||
.. # Install into $HOME/ventura/miniconda3, use all defaults.
|
||||
.. bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Run the installer.
|
||||
# Install into $HOME/ventura/miniconda3, use all defaults.
|
||||
bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # NOTE: This installation *should* run "conda init", which *should*
|
||||
.. # add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
# NOTE: This installation *should* run "conda init", which *should*
|
||||
# add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
|
||||
.. # NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
.. # nothing else. This file just contains the path to the miniconda3
|
||||
.. # installation directory.
|
||||
# NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
# nothing else. This file just contains the path to the miniconda3
|
||||
# installation directory.
|
||||
|
||||
.. # Turn off auto-activation of base environment.
|
||||
.. # NOTE: This command creates ~/.condarc.
|
||||
.. conda config --set auto_activate_base false
|
||||
# Turn off auto-activation of base environment.
|
||||
# NOTE: This command creates ~/.condarc.
|
||||
conda config --set auto_activate_base false
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # NOTE: This creates the directory ~/.cache/conda.
|
||||
# NOTE: This creates the directory ~/.cache/conda.
|
||||
|
||||
.. # Now create the environment for kaiju, specifying only the python version.
|
||||
.. conda create -n kaiju-3.8 python=3.8
|
||||
# Now create the environment for kaiju, specifying only the python version.
|
||||
conda create -n kaiju-3.8 python=3.8
|
||||
|
||||
.. # NOTE: This adds the path to the new environment in
|
||||
.. # ~/.conda/environments.txt.
|
||||
# NOTE: This adds the path to the new environment in
|
||||
# ~/.conda/environments.txt.
|
||||
|
||||
.. # Activate the new environment.
|
||||
.. conda activate kaiju-3.8
|
||||
# Activate the new environment.
|
||||
conda activate kaiju-3.8
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # IMPORTANT: Use a pip cache specific to this machine.
|
||||
.. export PIP_CACHE_DIR=$HOME/ventura/pip_cache
|
||||
# IMPORTANT: Use a pip cache specific to this machine.
|
||||
export PIP_CACHE_DIR=$HOME/ventura/pip_cache
|
||||
|
||||
.. # Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
# Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
|
||||
.. # Install packages required by kaipy.
|
||||
.. pip install -r requirements.txt
|
||||
# Install packages required by kaipy.
|
||||
pip install -r requirements.txt
|
||||
|
||||
.. # Save the environment description.
|
||||
.. conda list >& kaiju-3.8-MacOS-YYYYMMDD.env
|
||||
# Save the environment description.
|
||||
conda list >& kaiju-3.8-MacOS-YYYYMMDD.env
|
||||
|
||||
|
||||
|
||||
.. Where ``requirements.txt`` is a text file containing:
|
||||
Where ``requirements.txt`` is a text file containing:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ai.cdas
|
||||
.. alive_progress
|
||||
.. cartopy
|
||||
.. cdasws
|
||||
.. cdflib
|
||||
.. configparser
|
||||
.. dataclasses_json
|
||||
.. h5py
|
||||
.. jinja2
|
||||
.. matplotlib
|
||||
.. netCDF4
|
||||
.. progressbar
|
||||
.. pyhdf
|
||||
.. pytest
|
||||
.. scipy
|
||||
.. spacepy
|
||||
.. sunpy
|
||||
.. xarray
|
||||
ai.cdas
|
||||
alive_progress
|
||||
cartopy
|
||||
cdasws
|
||||
cdflib
|
||||
configparser
|
||||
dataclasses_json
|
||||
h5py
|
||||
jinja2
|
||||
matplotlib
|
||||
netCDF4
|
||||
progressbar
|
||||
pyhdf
|
||||
pytest
|
||||
scipy
|
||||
spacepy
|
||||
sunpy
|
||||
xarray
|
||||
|
||||
|
||||
.. Using the python environment
|
||||
.. ----------------------------
|
||||
Using the python environment
|
||||
----------------------------
|
||||
|
||||
.. Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
|
||||
@@ -1,105 +1,105 @@
|
||||
Building the ``kaiju`` software on Ubuntu 20.04
|
||||
===============================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This page provides instructions for building the ``kaiju`` software on an
|
||||
.. Intel-based Ubuntu 20.04 system. These instructions were developed for using a
|
||||
.. Ubuntu 20.04 virtual machine running under VirtualBox on a Mac, but the
|
||||
.. instructions should work for other Linux distributions, although minor changes
|
||||
.. may be needed, especially if your Linux distribution does no use the ``apt``
|
||||
.. package manager.
|
||||
This page provides instructions for building the ``kaiju`` software on an
|
||||
Intel-based Ubuntu 20.04 system. These instructions were developed for using a
|
||||
Ubuntu 20.04 virtual machine running under VirtualBox on a Mac, but the
|
||||
instructions should work for other Linux distributions, although minor changes
|
||||
may be needed, especially if your Linux distribution does no use the ``apt``
|
||||
package manager.
|
||||
|
||||
.. Step 0: Prepare your system
|
||||
.. ---------------------------
|
||||
Step 0: Prepare your system
|
||||
---------------------------
|
||||
|
||||
.. A few tools must be installed on your system before you begin building the
|
||||
.. ``kaiju`` software. These instructions assume you have permission to use
|
||||
.. ``sudo`` to install software.
|
||||
A few tools must be installed on your system before you begin building the
|
||||
``kaiju`` software. These instructions assume you have permission to use
|
||||
``sudo`` to install software.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. sudo apt-get install build-essential
|
||||
.. sudo apt-get install cmake
|
||||
.. sudo apt-get install git
|
||||
.. sudo apt-get install git-lfs
|
||||
.. sudo apt-get install libgeos-dev
|
||||
.. sudo apt-get install pkg-config
|
||||
sudo apt-get install build-essential
|
||||
sudo apt-get install cmake
|
||||
sudo apt-get install git
|
||||
sudo apt-get install git-lfs
|
||||
sudo apt-get install libgeos-dev
|
||||
sudo apt-get install pkg-config
|
||||
|
||||
|
||||
.. Install the Intel compiler suite
|
||||
.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Install the Intel compiler suite
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. The ``kaiju`` software is developed using the Intel compiler suite, available
|
||||
.. `here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_.
|
||||
.. The compiler suite is free, but comes in several optional parts. You will need
|
||||
.. to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_
|
||||
.. and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_.
|
||||
.. Once installed, this software should be available on your system under
|
||||
.. ``/opt/intel``.
|
||||
The ``kaiju`` software is developed using the Intel compiler suite, available
|
||||
`here <https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html#gs.29x43u>`_.
|
||||
The compiler suite is free, but comes in several optional parts. You will need
|
||||
to install the `Intel oneAPI Base Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html>`_
|
||||
and the `Intel oneAPI HPC Toolkit <https://www.intel.com/content/www/us/en/developer/tools/oneapi/hpc-toolkit-download.html>`_.
|
||||
Once installed, this software should be available on your system under
|
||||
``/opt/intel``.
|
||||
|
||||
.. Once the Intel tools are installed, you will need to make them available
|
||||
.. during the build process. Set up the tools as follows:
|
||||
Once the Intel tools are installed, you will need to make them available
|
||||
during the build process. Set up the tools as follows:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
.. Step 1: Build prerequisite libraries
|
||||
.. ------------------------------------
|
||||
Step 1: Build prerequisite libraries
|
||||
------------------------------------
|
||||
|
||||
.. NASA CDF library
|
||||
.. ~~~~~~~~~~~~~~~~
|
||||
NASA CDF library
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
.. The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is
|
||||
.. used in parts of the ``kaiju`` post-processing software when fetching
|
||||
.. spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to
|
||||
.. building the ``kaiju`` software, the CDF library must be built and installed
|
||||
.. on your system, since it is not available via the ``apt`` package manager.
|
||||
The `NASA CDF (Common Data Format) library <https://cdf.gsfc.nasa.gov/>`_ is
|
||||
used in parts of the ``kaiju`` post-processing software when fetching
|
||||
spacecraft data from `CDAWeb <https://cdaweb.gsfc.nasa.gov/>`_. Prior to
|
||||
building the ``kaiju`` software, the CDF library must be built and installed
|
||||
on your system, since it is not available via the ``apt`` package manager.
|
||||
|
||||
.. Instructions for building and installing the CDF library on your system are
|
||||
.. available :doc:`here <ubuntu-20.04_build_cdf>`.
|
||||
Instructions for building and installing the CDF library on your system are
|
||||
available :doc:`here <ubuntu-20.04_build_cdf>`.
|
||||
|
||||
.. HDF5 library
|
||||
.. ~~~~~~~~~~~~
|
||||
HDF5 library
|
||||
~~~~~~~~~~~~
|
||||
|
||||
.. The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used
|
||||
.. extensively for data storage in the ``kaiju`` software. The HDF5 software is
|
||||
.. available via ``apt``, but this version will not link with the ``kaiju``
|
||||
.. software when built with the Intel compiler suite. Prior to building the
|
||||
.. ``kaiju`` software, the HDF5 library must be built and installed on your
|
||||
.. system.
|
||||
The `HDF5 <https://www.hdfgroup.org/solutions/hdf5/>`_ file format is used
|
||||
extensively for data storage in the ``kaiju`` software. The HDF5 software is
|
||||
available via ``apt``, but this version will not link with the ``kaiju``
|
||||
software when built with the Intel compiler suite. Prior to building the
|
||||
``kaiju`` software, the HDF5 library must be built and installed on your
|
||||
system.
|
||||
|
||||
.. Instructions for building and installing the HDF5 library on your system are
|
||||
.. available :doc:`here <ubuntu-20.04_build_hdf5>`.
|
||||
Instructions for building and installing the HDF5 library on your system are
|
||||
available :doc:`here <ubuntu-20.04_build_hdf5>`.
|
||||
|
||||
.. NOTE: If you successfully build the ``kaiju`` software using the
|
||||
.. ``apt``-installed version of HDF5 on Ubuntu 20.04, please let us know how you
|
||||
.. did it!
|
||||
NOTE: If you successfully build the ``kaiju`` software using the
|
||||
``apt``-installed version of HDF5 on Ubuntu 20.04, please let us know how you
|
||||
did it!
|
||||
|
||||
.. Step 2: Create a python environment
|
||||
.. -----------------------------------
|
||||
Step 2: Create a python environment
|
||||
-----------------------------------
|
||||
|
||||
.. Most of the ``kaiju`` software for pre-processing, post-processing, and
|
||||
.. analysis is written in `Python <https://www.python.org/>`_. Python is
|
||||
.. available in many forms (or 'distributions'), but we recommend use of the
|
||||
.. `Miniconda distribution <https://docs.conda.io/en/latest/miniconda.html>`_
|
||||
.. for simplicity and compactness.
|
||||
Most of the ``kaiju`` software for pre-processing, post-processing, and
|
||||
analysis is written in `Python <https://www.python.org/>`_. Python is
|
||||
available in many forms (or 'distributions'), but we recommend use of the
|
||||
`Miniconda distribution <https://docs.conda.io/en/latest/miniconda.html>`_
|
||||
for simplicity and compactness.
|
||||
|
||||
.. Instructions for installing python and building a python environment on your
|
||||
.. system are available :doc:`here <ubuntu-20.04_build_python>`.
|
||||
Instructions for installing python and building a python environment on your
|
||||
system are available :doc:`here <ubuntu-20.04_build_python>`.
|
||||
|
||||
.. Step 3: Compile the ``kaiju`` software
|
||||
.. --------------------------------------
|
||||
Step 3: Compile the ``kaiju`` software
|
||||
--------------------------------------
|
||||
|
||||
.. The ``kaiju`` software can be built in serial or MPI versions. The serial
|
||||
.. version should be used when running the code on a single computer. The MPI
|
||||
.. version should be used when running on an HPC system (a supercomputer).
|
||||
The ``kaiju`` software can be built in serial or MPI versions. The serial
|
||||
version should be used when running the code on a single computer. The MPI
|
||||
version should be used when running on an HPC system (a supercomputer).
|
||||
|
||||
.. Instructions for building the serial version of the ``kaiju`` software on
|
||||
.. Ubuntu 20.04 are available :doc:`here <ubuntu-20.04_build_kaiju>`. The MPI
|
||||
.. version of ``kaiju`` is not supported on Ubuntu 20.04 at this time.
|
||||
Instructions for building the serial version of the ``kaiju`` software on
|
||||
Ubuntu 20.04 are available :doc:`here <ubuntu-20.04_build_kaiju>`. The MPI
|
||||
version of ``kaiju`` is not supported on Ubuntu 20.04 at this time.
|
||||
|
||||
.. toctree::
|
||||
|
||||
|
||||
@@ -1,61 +1,61 @@
|
||||
Building the CDF library on Ubuntu 20.04
|
||||
========================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to build and install the CDF library on Ubuntu 20.04 for use with the ``kaiju`` software.
|
||||
This file describes how to build and install the CDF library on Ubuntu 20.04 for use with the ``kaiju`` software.
|
||||
|
||||
.. **NOTE**: A Ubuntu 20.04-specific subdirectory of the user home directory is used for this build.
|
||||
**NOTE**: A Ubuntu 20.04-specific subdirectory of the user home directory is used for this build.
|
||||
|
||||
.. As of this date (2023-07-11), the latest version of the CDF library is:
|
||||
As of this date (2023-07-11), the latest version of the CDF library is:
|
||||
|
||||
.. ``cdf39_0-dist-all.tar.gz``
|
||||
``cdf39_0-dist-all.tar.gz``
|
||||
|
||||
.. Building and installing the CDF library
|
||||
.. ---------------------------------------
|
||||
Building and installing the CDF library
|
||||
---------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Specify the name for this system.
|
||||
.. export HOST_SYSTEM=ubuntu-20.04
|
||||
# Specify the name for this system.
|
||||
export HOST_SYSTEM=ubuntu-20.04
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/cdf/3.9.0
|
||||
.. mkdir -p $BUILD_ROOT/src
|
||||
.. cd $BUILD_ROOT/src
|
||||
# Specify and create the root of the build tree.
|
||||
export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/cdf/3.9.0
|
||||
mkdir -p $BUILD_ROOT/src
|
||||
cd $BUILD_ROOT/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://spdf.gsfc.nasa.gov/pub/software/cdf/dist/cdf39_0/linux/cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf cdf39_0-dist-all.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf cdf39_0-dist-all.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd cdf39_0-dist
|
||||
# Move into the code directory.
|
||||
cd cdf39_0-dist
|
||||
|
||||
.. # Build the library using the default system GNU compiler.
|
||||
.. date; time make OS=linux ENV=gnu CURSES=no all >& make.out; date
|
||||
.. # Took 0m30.425s
|
||||
# Build the library using the default system GNU compiler.
|
||||
date; time make OS=linux ENV=gnu CURSES=no all >& make.out; date
|
||||
# Took 0m30.425s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make test >& make_test.out; date
|
||||
.. # Took 0m0.153s
|
||||
# Test the library.
|
||||
date; time make test >& make_test.out; date
|
||||
# Took 0m0.153s
|
||||
|
||||
.. # Install the library in a version-specific subdirectory.
|
||||
.. date; time make INSTALLDIR=$BUILD_ROOT install >& make_install.out; date
|
||||
.. # Took 0m0.859s
|
||||
# Install the library in a version-specific subdirectory.
|
||||
date; time make INSTALLDIR=$BUILD_ROOT install >& make_install.out; date
|
||||
# Took 0m0.859s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out; date
|
||||
.. # Took 0m0.142s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out; date
|
||||
# Took 0m0.142s
|
||||
|
||||
|
||||
.. Using the CDF library
|
||||
.. ---------------------
|
||||
Using the CDF library
|
||||
---------------------
|
||||
|
||||
.. To use this software, you must run the setup script:
|
||||
To use this software, you must run the setup script:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. source $BUILD_ROOT/bin/definitions.B
|
||||
source $BUILD_ROOT/bin/definitions.B
|
||||
|
||||
@@ -1,74 +1,74 @@
|
||||
Building and installing the HDF5 library on Ubuntu 20.04
|
||||
========================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to build and install HDF5 on an Intel-based system running Ubuntu 20.04 for use with the kaiju software.
|
||||
This file describes how to build and install HDF5 on an Intel-based system running Ubuntu 20.04 for use with the kaiju software.
|
||||
|
||||
.. These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
These instructions assume that the Intel compiler suite has already been installed. If HDF5 is built with gcc, then it will not link with the kaiju code, which is built with the Intel compiler.
|
||||
|
||||
.. Building and installing the HDF5 library
|
||||
.. ----------------------------------------
|
||||
Building and installing the HDF5 library
|
||||
----------------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Specify the name for this machine.
|
||||
.. export HOST_SYSTEM=ubuntu-20.04
|
||||
# Specify the name for this machine.
|
||||
export HOST_SYSTEM=ubuntu-20.04
|
||||
|
||||
.. # Specify and create the root of the build tree.
|
||||
.. export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
.. mkdir -p $BUILD_ROOT/src
|
||||
.. cd $BUILD_ROOT/src
|
||||
# Specify and create the root of the build tree.
|
||||
export BUILD_ROOT=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
mkdir -p $BUILD_ROOT/src
|
||||
cd $BUILD_ROOT/src
|
||||
|
||||
.. # Download the source tarball.
|
||||
.. wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
# Download the source tarball.
|
||||
wget https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.14/hdf5-1.14.1/src/hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Unpack the source code.
|
||||
.. tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
# Unpack the source code.
|
||||
tar xzvf hdf5-1.14.1-2.tar.gz
|
||||
|
||||
.. # Move into the code directory.
|
||||
.. cd hdf5-1.14.1-2
|
||||
# Move into the code directory.
|
||||
cd hdf5-1.14.1-2
|
||||
|
||||
.. # Configure the Intel compilers.
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
# Configure the Intel compilers.
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
.. # Configure the library with Fortran support.
|
||||
.. date; time \
|
||||
.. ./configure \
|
||||
.. FC=ifort \
|
||||
.. --prefix=$BUILD_ROOT \
|
||||
.. --enable-fortran \
|
||||
.. >& configure.out; date
|
||||
.. # Took 0m26.314s
|
||||
# Configure the library with Fortran support.
|
||||
date; time \
|
||||
./configure \
|
||||
FC=ifort \
|
||||
--prefix=$BUILD_ROOT \
|
||||
--enable-fortran \
|
||||
>& configure.out; date
|
||||
# Took 0m26.314s
|
||||
|
||||
.. # Compile the library.
|
||||
.. date; time make >& make.out; date
|
||||
.. # Took 8m43.088s
|
||||
# Compile the library.
|
||||
date; time make >& make.out; date
|
||||
# Took 8m43.088s
|
||||
|
||||
.. # Test the library.
|
||||
.. date; time make check >& make_check.out; date
|
||||
.. # Took 9m9.848s
|
||||
# Test the library.
|
||||
date; time make check >& make_check.out; date
|
||||
# Took 9m9.848s
|
||||
|
||||
.. # Install the library.
|
||||
.. date; time make install >& make_install.out
|
||||
.. # Took 0m4.232s
|
||||
# Install the library.
|
||||
date; time make install >& make_install.out
|
||||
# Took 0m4.232s
|
||||
|
||||
.. # Clean the build tree.
|
||||
.. date; time make clean >& make_clean.out
|
||||
.. # Took 0m1.874s
|
||||
# Clean the build tree.
|
||||
date; time make clean >& make_clean.out
|
||||
# Took 0m1.874s
|
||||
|
||||
|
||||
.. Using the HDF5 library
|
||||
.. ----------------------
|
||||
Using the HDF5 library
|
||||
----------------------
|
||||
|
||||
.. To use the HDF library, you must set environment variables:
|
||||
To use the HDF library, you must set environment variables:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export HDF5_DIR=$HOME/ubuntu-20.04/local/hdf5/1.14.1-2
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
.. export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
export HDF5_DIR=$HOME/ubuntu-20.04/local/hdf5/1.14.1-2
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
|
||||
@@ -1,222 +1,222 @@
|
||||
Compiling the ``kaiju`` software on Ubuntu 20.04
|
||||
====================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. These instructions will walk you through the process of building and installing the ``kaiju`` software on a Ubuntu 20.04 system.
|
||||
These instructions will walk you through the process of building and installing the ``kaiju`` software on a Ubuntu 20.04 system.
|
||||
|
||||
.. These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
These instructions assume that the user is using the ``bash`` shell, and that no modifications have been made to the user "dotfiles" (``$HOME/.bashrc``, ``$HOME/.bash_profile``). If you have customized either of these files for your account, please carefully save and inspect the output from each command in the build process to ensure that no unexpected problems have crept in. To facilitate this practice, all of the commands shown below will illustrate how to save command output, and how to measure how long each step takes. The latter is a useful bit of information which can help identify build problems early in the process, avoiding much wasted time and effort later.
|
||||
|
||||
.. In the instructions below, all code will be built and installed in a Ubuntu 20.04-specific subdirectory of the user home directory, i.e. ``$HOME/ubuntu-20.04``. This particular organization is not required - it is intended as an example of one possible way to segregate software that has been built for multiple systems.
|
||||
In the instructions below, all code will be built and installed in a Ubuntu 20.04-specific subdirectory of the user home directory, i.e. ``$HOME/ubuntu-20.04``. This particular organization is not required - it is intended as an example of one possible way to segregate software that has been built for multiple systems.
|
||||
|
||||
.. Building the serial version of the ``kaiju`` software on Ubuntu 20.04
|
||||
.. -------------------------------------------------------------------------
|
||||
Building the serial version of the ``kaiju`` software on Ubuntu 20.04
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
.. Step 1: Configure build tools
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 1: Configure build tools
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Begin by configuring tools and libraries needed for the build:
|
||||
Begin by configuring tools and libraries needed for the build:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Add the Intel compilers to PATH.
|
||||
.. source /opt/intel/oneapi/setvars.sh
|
||||
# Add the Intel compilers to PATH.
|
||||
source /opt/intel/oneapi/setvars.sh
|
||||
|
||||
.. # Set variables for HDF5.
|
||||
.. export HOST_SYSTEM=ubuntu-20.04
|
||||
.. export HDF5_DIR=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
.. export PATH=$HDF5_DIR/bin:$PATH
|
||||
.. export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
.. export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
.. export CPATH=$HDF5_INCLUDE_DIRS
|
||||
.. export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
# Set variables for HDF5.
|
||||
export HOST_SYSTEM=ubuntu-20.04
|
||||
export HDF5_DIR=$HOME/$HOST_SYSTEM/local/hdf5/1.14.1-2
|
||||
export PATH=$HDF5_DIR/bin:$PATH
|
||||
export HDF5_INCLUDE_DIRS=$HDF5_DIR/include
|
||||
export HDF5_LIBRARIES=$HDF5_DIR/lib
|
||||
export CPATH=$HDF5_INCLUDE_DIRS
|
||||
export INCLUDE="-I$HDF5_INCLUDE_DIRS"
|
||||
|
||||
.. # Configure CDF.
|
||||
.. source $HOME/$HOST_SYSTEM/local/cdf/3.9.0/bin/definitions.B
|
||||
# Configure CDF.
|
||||
source $HOME/$HOST_SYSTEM/local/cdf/3.9.0/bin/definitions.B
|
||||
|
||||
|
||||
.. Step 2: Create the build directory
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 2: Create the build directory
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Create a system-specific build directory.
|
||||
Create a system-specific build directory.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd $HOME
|
||||
.. mkdir HOST_SYSTEM
|
||||
.. cd $HOST_SYSTEM
|
||||
cd $HOME
|
||||
mkdir HOST_SYSTEM
|
||||
cd $HOST_SYSTEM
|
||||
|
||||
|
||||
.. Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
Then make an additional subdirectory level for the branch of the code you are building (the ``development`` branch is used as an example). This arrangement is useful when you need to maintain simultaneous builds of different branches.
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export KAIJU_BRANCH_NAME=development
|
||||
.. mkdir $KAIJU_BRANCH_NAME
|
||||
.. cd $KAIJU_BRANCH_NAME
|
||||
export KAIJU_BRANCH_NAME=development
|
||||
mkdir $KAIJU_BRANCH_NAME
|
||||
cd $KAIJU_BRANCH_NAME
|
||||
|
||||
|
||||
.. Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 3: Clone the ``kaiju`` repository from BitBucket
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
NOTE: This step assumes you have been granted access to the ``kaiju`` repository on BitBucket, and that you have configured an SSH key pair for use with BitBucket. If you need help with these tasks, please contact a CGS team member for assistance.
|
||||
|
||||
.. Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
Clone the ``kaiju`` repository (or "repo") from BitBucket:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
git clone git@bitbucket.org:aplkaiju/kaiju.git
|
||||
|
||||
|
||||
.. This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
This process should take a minute or so. When complete, verify that the ``kaiju`` code exists in your directory (the actual directory contents may differ slightly from what is shown below):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. ls kaiju
|
||||
.. analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
ls kaiju
|
||||
analysis cmake CMakeLists.txt examples external gitHookScripts kaiju.sublime-project kaipy places pytests quickstart README.md scripts setup.py src testingScripts tests xml
|
||||
|
||||
|
||||
.. Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
Now move down into the cloned repo, and switch to the branch of the code you wish to use. By default, the cloned repository provides the ``master`` branch, but we want the ``development`` branch:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. cd kaiju
|
||||
.. git switch $KAIJU_BRANCH_NAME
|
||||
cd kaiju
|
||||
git switch $KAIJU_BRANCH_NAME
|
||||
|
||||
|
||||
.. Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 4: Run ``cmake`` to create the ``Makefile`` needed to build the software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
Since the ``kaiju`` code can be built in serial and MPI forms, we first make a directory in which to build the serial version of the code (use whatever name you prefer, but ``build_serial`` is simple and unambiguous):
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. export KAIJU_BUILD_NAME=build_serial
|
||||
.. KAIJU_BUILD_PATH=$KAIJU_HOME/$KAIJU_BUILD_NAME
|
||||
.. mkdir -p $KAIJU_BUILD_PATH
|
||||
.. cd $KAIJU_BUILD_PATH
|
||||
export KAIJU_BUILD_NAME=build_serial
|
||||
KAIJU_BUILD_PATH=$KAIJU_HOME/$KAIJU_BUILD_NAME
|
||||
mkdir -p $KAIJU_BUILD_PATH
|
||||
cd $KAIJU_BUILD_PATH
|
||||
|
||||
|
||||
.. Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
Now run the ``cmake`` command. Save the ``cmake`` output, and use timestamps for each step. The options shown below direct the build process to use a recent version of the Intel Fortran compiler:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON .. >& cmake.out; date
|
||||
date; time FC=`which ifort` cmake -DALLOW_INVALID_COMPILERS=ON .. >& cmake.out; date
|
||||
|
||||
|
||||
.. This command usually takes 2-3 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
This command usually takes 2-3 seconds, depending on system activity. Examine the output file ``cmake.out`` for problems. It *should* look something like this:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. -- The Fortran compiler identification is Intel 20.2.9.20230302
|
||||
.. -- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort
|
||||
.. -- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort -- works
|
||||
.. -- Detecting Fortran compiler ABI info
|
||||
.. -- Detecting Fortran compiler ABI info - done
|
||||
.. -- Checking whether /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort supports Fortran 90
|
||||
.. -- Checking whether /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort supports Fortran 90 -- yes
|
||||
.. -- HDF5: Using hdf5 compiler wrapper to determine Fortran configuration
|
||||
.. -- Found HDF5: /home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/lib/libhdf5_fortran.so;/home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.14.1-2") found components: Fortran
|
||||
.. -- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
.. -- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
.. CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
.. Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
.. Call Stack (most recent call first):
|
||||
.. CMakeLists.txt:99 (include)
|
||||
-- The Fortran compiler identification is Intel 20.2.9.20230302
|
||||
-- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort
|
||||
-- Check for working Fortran compiler: /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort -- works
|
||||
-- Detecting Fortran compiler ABI info
|
||||
-- Detecting Fortran compiler ABI info - done
|
||||
-- Checking whether /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort supports Fortran 90
|
||||
-- Checking whether /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort supports Fortran 90 -- yes
|
||||
-- HDF5: Using hdf5 compiler wrapper to determine Fortran configuration
|
||||
-- Found HDF5: /home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/lib/libhdf5_fortran.so;/home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "1.14.1-2") found components: Fortran
|
||||
-- Found OpenMP_Fortran: -qopenmp (found version "5.0")
|
||||
-- Found OpenMP: TRUE (found version "5.0") found components: Fortran
|
||||
CMake Warning at cmake/compilers.cmake:61 (message):
|
||||
Setting default optimization to O2 to avoid certain Intel compiler bugs
|
||||
Call Stack (most recent call first):
|
||||
CMakeLists.txt:99 (include)
|
||||
|
||||
|
||||
.. -------------------------
|
||||
.. Configuration summary ...
|
||||
.. System: ubuntu-20
|
||||
.. OS: Linux
|
||||
.. Processor: x86_64
|
||||
.. Compiler: Intel / 20.2.9.20230302
|
||||
.. /opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort
|
||||
.. HDF5 Wrapper: /home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/bin/h5fc
|
||||
.. Version: 3f4e147c / development
|
||||
.. Build Type: Release
|
||||
.. Base Flags: -fPIC -free -implicitnone -qopenmp
|
||||
.. Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals -ipo
|
||||
.. -------------------------
|
||||
-------------------------
|
||||
Configuration summary ...
|
||||
System: ubuntu-20
|
||||
OS: Linux
|
||||
Processor: x86_64
|
||||
Compiler: Intel / 20.2.9.20230302
|
||||
/opt/intel/oneapi/compiler/2023.1.0/linux/bin/intel64/ifort
|
||||
HDF5 Wrapper: /home/ewinter/ubuntu-20.04/local/hdf5/1.14.1-2/bin/h5fc
|
||||
Version: 3f4e147c / development
|
||||
Build Type: Release
|
||||
Base Flags: -fPIC -free -implicitnone -qopenmp
|
||||
Build Flags: -O2 -align array64byte -align rec32byte -no-prec-div -fast-transcendentals -ipo
|
||||
-------------------------
|
||||
|
||||
.. Adding CHIMP module ...
|
||||
.. EB IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
.. TP IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
.. Adding executable project.x
|
||||
.. Adding executable psd.x
|
||||
.. Adding executable push.x
|
||||
.. Adding executable slice.x
|
||||
.. Adding executable chop.x
|
||||
.. Adding executable trace.x
|
||||
.. Adding executable sctrack.x
|
||||
.. Adding executable calcdb.x
|
||||
.. Adding executable wpicheck.x
|
||||
.. Adding Gamera module ...
|
||||
.. Bricksize is 16
|
||||
.. IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/gamera/ICs/null.F90
|
||||
.. Adding executable gamera.x
|
||||
.. Adding Gamera Helio module ...
|
||||
.. IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
.. Adding executable gamhelio.x
|
||||
.. Adding ReMIX module ...
|
||||
.. Adding executable remix.x
|
||||
.. Adding RCM module ...
|
||||
.. RCM Grid is of size 180 x 361 x 160
|
||||
.. Adding executable rcm.x
|
||||
.. Adding Voltron module ...
|
||||
.. IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
.. Adding executable voltron.x
|
||||
.. -- Configuring done
|
||||
.. -- Generating done
|
||||
.. -- Build files have been written to: /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/build_serial
|
||||
Adding CHIMP module ...
|
||||
EB IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/chimp/ebICs/ebICstd.F90
|
||||
TP IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/chimp/tpICs/tpICstd.F90
|
||||
Adding executable project.x
|
||||
Adding executable psd.x
|
||||
Adding executable push.x
|
||||
Adding executable slice.x
|
||||
Adding executable chop.x
|
||||
Adding executable trace.x
|
||||
Adding executable sctrack.x
|
||||
Adding executable calcdb.x
|
||||
Adding executable wpicheck.x
|
||||
Adding Gamera module ...
|
||||
Bricksize is 16
|
||||
IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/gamera/ICs/null.F90
|
||||
Adding executable gamera.x
|
||||
Adding Gamera Helio module ...
|
||||
IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/gamera/ICs/helio/wsa.F90
|
||||
Adding executable gamhelio.x
|
||||
Adding ReMIX module ...
|
||||
Adding executable remix.x
|
||||
Adding RCM module ...
|
||||
RCM Grid is of size 180 x 361 x 160
|
||||
Adding executable rcm.x
|
||||
Adding Voltron module ...
|
||||
IC file is /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/src/voltron/ICs/earthcmi.F90
|
||||
Adding executable voltron.x
|
||||
-- Configuring done
|
||||
-- Generating done
|
||||
-- Build files have been written to: /home/ewinter/ubuntu-20.04/cgs/kaiju/development/kaiju/build_serial
|
||||
|
||||
.. Step 5: Compile the ``kaiju`` software
|
||||
.. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
Step 5: Compile the ``kaiju`` software
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
Now use ``make`` to build the ``kaiju`` software, time-stamping and saving the output:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. date; time make >& make.out; date
|
||||
date; time make >& make.out; date
|
||||
|
||||
|
||||
.. This command should complete in about 9 minutes on a Ubuntu 20.04 system running on an i9 processor. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
This command should complete in about 9 minutes on a Ubuntu 20.04 system running on an i9 processor. When the command is finished, check the output file ``make.out``. The file is long, but the last few lines should look something like this:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. [ 99%] Built target voltron
|
||||
.. Scanning dependencies of target remix.x
|
||||
.. [100%] Building Fortran object CMakeFiles/remix.x.dir/src/drivers/remix.F90.o
|
||||
.. [100%] Linking Fortran executable bin/remix.x
|
||||
.. [100%] Built target remix.x
|
||||
.. Scanning dependencies of target remix
|
||||
.. [100%] Built target remix
|
||||
.. Scanning dependencies of target gamera
|
||||
.. [100%] Built target gamera
|
||||
[ 99%] Built target voltron
|
||||
Scanning dependencies of target remix.x
|
||||
[100%] Building Fortran object CMakeFiles/remix.x.dir/src/drivers/remix.F90.o
|
||||
[100%] Linking Fortran executable bin/remix.x
|
||||
[100%] Built target remix.x
|
||||
Scanning dependencies of target remix
|
||||
[100%] Built target remix
|
||||
Scanning dependencies of target gamera
|
||||
[100%] Built target gamera
|
||||
|
||||
.. To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
To verify that all of the ``kaiju`` programs have been built, examine the ``bin`` subdirectory of your ``build_serial`` directory (this list will evolve as more programs are added):
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. ls bin
|
||||
.. calcdb.x gamhelio.x psd.x remix2rcm.x sctrack.x voltron.x
|
||||
.. chop.x kaitoy.x push.x remix2remix.x slice.x wpicheck.x
|
||||
.. gamera.x project.x rcm.x remix.x trace.x
|
||||
|
||||
|
||||
.. Using the ``kaiju`` software
|
||||
.. --------------------------------
|
||||
|
||||
.. Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
|
||||
|
||||
.. This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable (not the ``KAIJU_HOME`` environment variable). However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. .. code-block:: shell
|
||||
|
||||
.. $KAIJUHOME/build_serial/bin/gamera.x
|
||||
.. code-block:: shell
|
||||
|
||||
ls bin
|
||||
calcdb.x gamhelio.x psd.x remix2rcm.x sctrack.x voltron.x
|
||||
chop.x kaitoy.x push.x remix2remix.x slice.x wpicheck.x
|
||||
gamera.x project.x rcm.x remix.x trace.x
|
||||
|
||||
|
||||
Using the ``kaiju`` software
|
||||
--------------------------------
|
||||
|
||||
Once built, you must run the setup script before using the ``kaiju`` software:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
source $KAIJU_HOME/scripts/setupEnvironment.sh
|
||||
|
||||
|
||||
This script will set environment variables needed by the ``kaiju`` software, including the ``KAIJUHOME`` environment variable (not the ``KAIJU_HOME`` environment variable). However, the path to the compiled programs is not added - you will need to specify the complete path when using compiled programs. For example, to run the serial version of ``gamera.x``:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$KAIJUHOME/build_serial/bin/gamera.x
|
||||
|
||||
@@ -1,98 +1,98 @@
|
||||
Building a python environment for ``kaiju`` on Ubuntu 20.04
|
||||
===============================================================
|
||||
|
||||
.. Introduction
|
||||
.. ------------
|
||||
Introduction
|
||||
------------
|
||||
|
||||
.. This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based machine running Ubuntu 20.04 which can be used to run the ``kaiju`` code.
|
||||
This file describes how to set up a python 3.8-based ``conda`` environment on an Intel-based machine running Ubuntu 20.04 which can be used to run the ``kaiju`` code.
|
||||
|
||||
.. These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
These steps assume that ``pip`` (only) is used for installing additional packages, and packages are only taken from PyPI (and the default ``conda`` repository, if needed) - no other repositories are used.
|
||||
|
||||
.. *A NOTE OF EXPLANATION:* These instructions install ``miniconda3`` into a Ubuntu 20.04-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
*A NOTE OF EXPLANATION:* These instructions install ``miniconda3`` into a Ubuntu 20.04-specific subdirectory of the home directory, to maintain compatibility with instructions for other systems. Feel free to install ``miniconda3`` wherever is convenient.
|
||||
|
||||
.. Building the python environment
|
||||
.. -------------------------------
|
||||
Building the python environment
|
||||
-------------------------------
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. # Download the installer.
|
||||
.. cd $HOME
|
||||
.. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Download the installer.
|
||||
cd $HOME
|
||||
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # Run the installer.
|
||||
.. # Install into $HOME/ubuntu-20.04/miniconda3, use all defaults.
|
||||
.. bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
# Run the installer.
|
||||
# Install into $HOME/ubuntu-20.04/miniconda3, use all defaults.
|
||||
bash ./Miniconda3-latest-MacOSX-x86_64.sh
|
||||
|
||||
.. # NOTE: This installation *should* run "conda init", which *should*
|
||||
.. # add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
# NOTE: This installation *should* run "conda init", which *should*
|
||||
# add the conda setup code to ~/.bashrc or ~/.bash_profile.
|
||||
|
||||
.. # NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
.. # nothing else. This file just contains the path to the miniconda3
|
||||
.. # installation directory.
|
||||
# NOTE: This installation creates ~/.conda/environments.txt, but
|
||||
# nothing else. This file just contains the path to the miniconda3
|
||||
# installation directory.
|
||||
|
||||
.. # Turn off auto-activation of base environment.
|
||||
.. # NOTE: This command creates ~/.condarc.
|
||||
.. conda config --set auto_activate_base false
|
||||
# Turn off auto-activation of base environment.
|
||||
# NOTE: This command creates ~/.condarc.
|
||||
conda config --set auto_activate_base false
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # NOTE: This creates the directory ~/.cache/conda.
|
||||
# NOTE: This creates the directory ~/.cache/conda.
|
||||
|
||||
.. # Now create the environment for kaiju, specifying only the python version.
|
||||
.. conda create -n kaiju-3.8 python=3.8
|
||||
# Now create the environment for kaiju, specifying only the python version.
|
||||
conda create -n kaiju-3.8 python=3.8
|
||||
|
||||
.. # NOTE: This adds the path to the new environment in
|
||||
.. # ~/.conda/environments.txt.
|
||||
# NOTE: This adds the path to the new environment in
|
||||
# ~/.conda/environments.txt.
|
||||
|
||||
.. # Activate the new environment.
|
||||
.. conda activate kaiju-3.8
|
||||
# Activate the new environment.
|
||||
conda activate kaiju-3.8
|
||||
|
||||
.. # Update everything to latest version.
|
||||
.. conda update --all
|
||||
# Update everything to latest version.
|
||||
conda update --all
|
||||
|
||||
.. # IMPORTANT: Use a pip cache specific to this machine.
|
||||
.. export PIP_CACHE_DIR=$HOME/ubuntu-20.04/pip_cache
|
||||
# IMPORTANT: Use a pip cache specific to this machine.
|
||||
export PIP_CACHE_DIR=$HOME/ubuntu-20.04/pip_cache
|
||||
|
||||
.. # Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
# Make sure CDF, HDF5, and GEOS have been built and installed.
|
||||
|
||||
.. # Install packages required by kaipy.
|
||||
.. pip install -r requirements.txt
|
||||
# Install packages required by kaipy.
|
||||
pip install -r requirements.txt
|
||||
|
||||
.. # Save the environment description.
|
||||
.. conda list >& kaiju-3.8-ubuntu-20.04-YYYYMMDD.env
|
||||
# Save the environment description.
|
||||
conda list >& kaiju-3.8-ubuntu-20.04-YYYYMMDD.env
|
||||
|
||||
|
||||
|
||||
.. Where ``requirements.txt`` is a text file containing:
|
||||
Where ``requirements.txt`` is a text file containing:
|
||||
|
||||
.. .. code-block::
|
||||
.. code-block::
|
||||
|
||||
.. ai.cdas
|
||||
.. alive_progress
|
||||
.. cartopy
|
||||
.. cdasws
|
||||
.. cdflib
|
||||
.. configparser
|
||||
.. dataclasses_json
|
||||
.. h5py
|
||||
.. jinja2
|
||||
.. matplotlib
|
||||
.. netCDF4
|
||||
.. progressbar
|
||||
.. pyhdf
|
||||
.. pytest
|
||||
.. scipy
|
||||
.. spacepy
|
||||
.. sunpy
|
||||
.. xarray
|
||||
ai.cdas
|
||||
alive_progress
|
||||
cartopy
|
||||
cdasws
|
||||
cdflib
|
||||
configparser
|
||||
dataclasses_json
|
||||
h5py
|
||||
jinja2
|
||||
matplotlib
|
||||
netCDF4
|
||||
progressbar
|
||||
pyhdf
|
||||
pytest
|
||||
scipy
|
||||
spacepy
|
||||
sunpy
|
||||
xarray
|
||||
|
||||
|
||||
.. Using the python environment
|
||||
.. ----------------------------
|
||||
Using the python environment
|
||||
----------------------------
|
||||
|
||||
.. Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
Once your python environment is created, you must activate it for use with the ``kaiju`` software:
|
||||
|
||||
.. .. code-block:: shell
|
||||
.. code-block:: shell
|
||||
|
||||
.. conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
conda activate kaiju-3.8 # or whatever name you used for the python environment
|
||||
|
||||
@@ -1,23 +1,9 @@
|
||||
Internal ``kaiju`` documentation
|
||||
======================================
|
||||
Miscellaneous
|
||||
===========================
|
||||
|
||||
This is the documentation for the development team of ``kaiju`` software. ``kaiju`` includes the
|
||||
Multiscale Atmosphere-Geospace Environment (`MAGE
|
||||
<https://cgs.jhuapl.edu/Models/>`_) model developed by the `Center for
|
||||
Geospace Storms <https://cgs.jhuapl.edu/>`_ as well as other scientific
|
||||
software for simulation of heliospheric environments such as planetary
|
||||
magnetospheres and the solar wind. This documentation focuses on
|
||||
`MAGE <https://cgs.jhuapl.edu/Models/>`_ and `GAMERA-helio <https://cgs.jhuapl.edu/Models/gamera.php>`_, i.e., the geospace
|
||||
and inner heliosphere applications of the ``kaiju`` software.
|
||||
This section contains build guides for various platforms that are not tested.
|
||||
|
||||
|
||||
====================
|
||||
Table of contents
|
||||
====================
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
build_guides/index
|
||||
codeInformation/index
|
||||
tools/index
|
||||
_obsolete/index
|
||||
build_guides/index
|
||||
Reference in New Issue
Block a user