Welcome to KAUST Supercomputing Laboratory

KAUST Supercomputing Lab (KSL)'s mission is to inspire and enable scientific, economic and social advances through the development and application of HPC solutions, through collaboration with KAUST researchers and partners, and through the provision of world-class computational systems and services.

  • Offering world-class HPC and data resources in a fashion that stimulates research and development.
  • Assisting KAUST researchers and partners to exploit the HPC resources at KAUST with a combination of training, consultation and collaboration.
  • Collaborating with KAUST researchers in the joint development of HPC solutions that advance the scientific knowledge in the disciplines strategic to KAUST mission.
  • Growing HPC capability at KSL over time to meet the future needs of the KAUST community.



  • In this newsletter:

    • Next maintenance session
    • RCAC meeting
    • Tip of the week: Allocating Ranks Unequally Over Nodes
    • Follow us on Twitter and YouTube
    • Previous Announcements
    • Previous Tips


    Next maintenance session

    We would like to announce our next maintenance session on Shaheen which will take place on Tuesday the 22nd of June. We are planning for a one full day outage (24 hours).

    We will send more details and detailed timing closer to the date.


    RCAC meeting

    The project submission deadline for the next RCAC meeting is June 30th. Please note that the RCAC meetings are held once per month. Projects received on or before the submission deadline will be included in the agenda for the subsequent RCAC meeting.The detailed procedures, updated templates and forms are available here: https://www.hpc.kaust.edu.sa/account-applications


    Tip of the weekAllocating Ranks Unequally Over Nodes

    SLURM offers a facility for distributing ranks of the processes across the nodes. It can even distribute unequally for example rank 0 on the first node for extra memory when gathering data from many workers ranks on other nodes. The option is --distribution, which controls the distribution of tasks to the nodes on which resources have been allocated, and the distribution of those  resources  to tasks for binding (task affinity).  There are multiple options like block|cyclic|arbitrary|plane. (Further details are available in man srun). For example, the arbitrary method of distribution will allocate processes in-order as listed in file designated by the environment variable SLURM_HOSTFILE.  

    srun -l /bin/hostname | sort -n | awk '{print $2}' > nodelist.txt

    or use 

    scontrol show hostname $SLURM_NODELIST > nodelist.txt 

    Then, export  the environment variable.

    export SLURM_HOSTFILE=nodelist.txt 

    Edit the file and make sure to have the adequate number of lines with the number of tasks, and the run the executable.

    srun --hint=nomultithread -N 3 --ntasks=64 --distribution=arbitrary ./my_exe


    Follow us on Twitter and YouTube

    Follow all the latest news on HPC within the Supercomputing Lab and at KAUST, on Twitter @KAUST_HPC.

    Our KSL training recordings are now available for you to browse on-demand in our KSL YouTube channel , Subscribe and hit the notification button to keep up to date with our latest material. 


    Previous Announcements


    Previous Tips