How to build on FX1000

(1) Clone the repository

Our repository is private, so you need to register the public key at first.

  1. Generate a public key

    $ ssh-keygen -t ed25519
    $ cat .ssh/id_ed25519.pub
    
  2. Register the public key

    • [Settings] –> [SSH and GPG keys] –> push [New SSH key]

    • or this page

  3. clone the repository

    • You cannot use the original home directory, but can use /work/ga28/{YourID}.

    $ cd /work/ga28/a2800X/
    $ git clone git@github.com:Fujitsu-UTokyo-QDD/QDD.git
    

(2) Build

  1. Create build.sh file in QDD directory.

    $ cd QDD
    $ cat build.sh
    #!/bin/bash
    #PJM -L rscgrp=short-o
    #PJM -L node=1
    #PJM -L elapse=00:05:00
    #PJM -g ga28
    
    module load python/3.8.9
    CC="mpifcc -Kfast -Nclang -msve-vector-bits=512 -fno-builtin" CXX="mpiFCC -Kfast -Nclang -msve-vector-bits=512 -fno-builtin" Python_ROOT_DIR=/work/opt/local/aarch64/apps/fj/1.2.31/python/3.8.9 Boost_DIR=/work/ga28/share/boost_1_81_0-aarch64/lib/cmake/Boost-1.81.0 /work/ga28/share/cmake-3.26.4-linux-aarch64/bin/cmake -B build -DCMAKE_BUILD_TYPE=Release -DisMPI=ON
    /work/ga28/share/cmake-3.26.4-linux-aarch64/bin/cmake --build build -j
    
    • Points

      • Boost library is already built with gcc, and put in the shared directory. (Fujitsu compiler (mpifcc/mpiFCC) does not work well.)

      • Newer cmake is put in the shared directory.

      • QDD should be compiled with Fujitsu compiler (for profiling).

  2. Submit the job

    $ pjsub build.sh
    
  3. Check the job id & status

    $ pjstat
    
    • You can find the stdout/stderr from build.sh.{JobID} file.

(3) Run

  1. Create run.sh file in QDD directory.

    $ cat run.sh
    #!/bin/bash
    #PJM -L rscgrp=short-o
    #PJM -L node=4
    #PJM --mpi proc=1
    #PJM -L elapse=01:00:00
    #PJM -g ga28
    
    mpiexec -np 4 ./build/test/mpi_test_grover 30
    
    • #PJM -L node=4 represents the number of nodes.

  2. Submit the job

    $ pjsub run.sh
    
  3. Check the job id & status

    $ pjstat
    
    • You can find the stdout/stderr from run.sh.{JobID} file.

Tips

  • You can use FX1000 interactively with the following command.

    $ pjsub --interact -g ga28 -L rscgrp=interactive-o,node=1
    
    • If the number of node is 1, the maximum execution time is 60mins.

    • If more, it is 10mins.

    • You cannot use multiple interactive jobs at the same time.