Clone Source Tree and Compile

Prepare the necessary toolkits, dependencies and compile hilapp, the S2S compiler of HILA

Compilation of CFT simulation codes developed upon HILA logically requires two steps

    • Compiling S2S transcompiler hilapp and install it onto desired path.
    • Compiling simulation codes with necessary environment variables, which will invoke hardware architecture supports from HILA.

HILA is developed on Debian/Ubuntu branch of GNU/Linux operating system. It has been proven many times that HILA's utilities also works well on Red Hat Enterprise Linux as well as SUSE Linux Enterprise. After necessary configurations, simulation codes of HILA also has been compiled on FreeBSD system, which is significantly different from Linux family of operating system in the aspects of system components. On all systems, download HILA's source tree is done by git clone

  • $ git clone https://github.com/CFT-HY/HILA.git

Users and developers using HILA's APIs are welcomed to send their patches of HILA on their own systems back to HILA's repository, see more on community about contributions and license.

HILA's utilities, including hialpp, are configured and built through GNU make. On Debian/Ubuntu system, all necessary dependencies for building HILA can be easily installed through APT, see details from documentation.

Dependencies On Supercomputer

In specific situation, compiling hilapp may be not easy or totally impossible on certain supercomputer platforms. This problem is caused by lack of module support LLVM, which is necessary as described in About page.

There are three major ways to over come this issue:

(1) Users could compile hilapp and link it statically on their own computer with LLVM, and then copy the static-linked binary of hilapp into supercomputer, see detail from documentation. This solution only works when users' computer has same CPU architecture as the supercomputer's. In most case, x86_64 is the architecture under concerning.

(2) Many HPC systems has Spack installed, and in common case, multiple versions of Spack are installed as modules. As a source trees management and building tool dedicated on supercomputer which has Environment Modules and Slurm Workload Manager available, spack is recommended tool to build third-party dependencies with optimized configurations on supercomputer, see documentation for detailed instruction.

Other supercomputer accessible alternative of Spack is EasyBuild.

(3) Containerization is also an effective way to by pass dependencies problem of LLVM. Using OS-level virtualization provided by Singularity, hilapp can run just like it is built locally, see details in documentation about how to deploy Singularity or Docker.