Logo

HPC @ Uni.lu

High Performance Computing in Luxembourg

You probably use on your laptop or workstation a set of classical debugger framework (gdb, jdb etc.) or profilers (such as gprof or jmap).

You can use these tools too on the UL HPC platform.

In addition, we have invested in a couple of commercial software you might find useful:

The below section describes the basic usage of those tools. For more details, you are expected to refer to their official documentation, linked below for convenience.

Allinea Forge - DDT & MAP

  • Official web sites: DDT and MAP
  • Reference documentation
  • Quickstart guide:

    • on a computing node where the X11 agent have been forwarded: module load Allinea/Forge then run either ddt or map

Basic usage (in more details):

  • Connect by forwarding the X agent to the cluster (gaia in the below case)

       $> ssh -X gaia-cluster
    
  • Reserve an interactive job (or connect to a running job using oarsub -C <job ID> – see OAR documentation). Notice the Initialize X11 forwarding message which will ensure that you can really run the GUI.

      svarrette@access(gaia-cluster) ~> oarsub -I
      [ADMISSION RULE] Set default walltime to 7200.
      [ADMISSION RULE] Modify resource description with type constraints
      OAR_JOB_ID=2726996
      Interactive mode : waiting...
      Starting...
    
      Initialize X11 forwarding...
      Connect to OAR job 2726996 via the node gaia-27
      [...]
      svarrette@gaia-27(gaia-cluster) ~>
    
  • Load the Allinea/Forge module

      vplugaru@moonshot2-13: ~ $ module show Allinea/Forge
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         /opt/apps/manual_install/Allinea/Forge/6.0.6:
      -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
      whatis(" Allinea Forge is the complete toolsuite for software development - with everything needed to debug, profile, optimize, edit and build C, C++ and Fortran applications on Linux for high performance - from single threads thro
      ugh to complex parallel HPC codes with MPI, OpenMP, threads or CUDA. - Homepage: http://www.allinea.com/products/develop-allinea-forge/  ")
      conflict("Forge")
      prepend_path("PATH","/opt/apps/default/software/Allinea/Forge/6.0.6/bin")
      prepend_path("LD_LIBRARY_PATH","/opt/apps/default/software/Allinea/Forge/6.0.6/lib")
      help([[ Allinea Forge is the complete toolsuite for software development - with everything needed to debug, profile, optimize, edit and build C, C++ and Fortran applications on Linux for high performance - from single threads throu
      gh to complex parallel HPC codes with MPI, OpenMP, threads or CUDA. - Homepage: http://www.allinea.com/products/develop-allinea-forge/
      ]])       
    
      vplugaru@moonshot2-13: ~ $ module load Allinea/Forge
    
  • you can now run Allinea DDT by issuing the command ddt
  • you can now run Allinea MAP by issuing the command map

Allinea Performance Reports

Basic usage (in more details):

  • Connect as normally to the UL HPC platform, e.g. the (gaia cluster and start an interactive job:

       $> ssh gaia-cluster
       $> oarsub -I
    
       vplugaru@moonshot2-13: ~ $ module show Allinea/Reports
       -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
          /opt/apps/manual_install/Allinea/Reports/6.0.6:
       -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
       whatis(" Allinea Performance Reports are the most effective way to characterize and understand the performance of HPC application runs. One single-page HTML report elegantly answers a range of vital questions for any HPC site: Is t
       his application well-optimized for the system and the processors it is running on? Does it benefit from running at this scale? Are there I/O, networking or threading bottlenecks affecting performance? Which hardware, software or co
       nfiguration changes can we make to improve performance further. How much energy did this application use? - Homepage: http://www.allinea.com/products/allinea-performance-reports   ")
       conflict("Reports")
       prepend_path("PATH","/opt/apps/default/software/Allinea/Reports/6.0.6/bin")
       prepend_path("LD_LIBRARY_PATH","/opt/apps/default/software/Allinea/Reports/6.0.6/lib")
       help([[ Allinea Performance Reports are the most effective way to characterize and understand the performance of HPC application runs. One single-page HTML report elegantly answers a range of vital questions for any HPC site: Is th
       is application well-optimized for the system and the processors it is running on? Does it benefit from running at this scale? Are there I/O, networking or threading bottlenecks affecting performance? Which hardware, software or con
       figuration changes can we make to improve performance further. How much energy did this application use? - Homepage: http://www.allinea.com/products/allinea-performance-reports
       ]])
    
       vplugaru@moonshot2-13: ~ $ module load Allinea/Reports
       vplugaru@moonshot2-13: ~ $ perf-report myapplication
    
  • Upon completion of the executed task (myapplication) a performance report is generated in text and html format to the current directory

    • the name of the report will contain: the name of the executed task, number of processes it was run on (e.g. if we ran perf-report mpirun -np 64 myapplication, 64p would appear in the name) and a time stamp

RogueWave TotalView

Basic usage (in more details):

  • Connect by forwarding the X agent to the cluster (gaia in the below case)

       $> ssh -X gaia-cluster
    
  • Reserve an interactive job (or connect to a running job using oarsub -C <job ID> – see OAR documentation). Notice the Initialize X11 forwarding message which will ensure that you can really run the GUI.

      svarrette@access(gaia-cluster) ~> oarsub -I
      [ADMISSION RULE] Set default walltime to 7200.
      [ADMISSION RULE] Modify resource description with type constraints
      OAR_JOB_ID=2726996
      Interactive mode : waiting...
      Starting...
    
      Initialize X11 forwarding...
      Connect to OAR job 2726997 via the node gaia-27
      [...]
      svarrette@gaia-27(gaia-cluster) ~>
    
  • Load the debugger/TotalView module:

     varrette@gaia-27(gaia-cluster) ~> module show debugger/TotalView
      ------------------------------------------------------------------------------------------------------------------
         /opt/apps/resif/devel/v1.1-20150414/core/modules/debugger/debugger/TotalView/8.12.0-0-linux-x86-64:
      ------------------------------------------------------------------------------------------------------------------
      whatis("Description: TotalView is a GUI-based source code defect analysis tool that gives you unprecedented  control over processes and thread execution and visibility into program state and variables. It allows  you to debug one or many processes and/or threads in a single window with complete control over program  execution. This allows you to set breakpoints, stepping line by line through the code on a single thread,  or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads.  You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take  advantage of threads, OpenMP, MPI, GPUs or coprocessors. - Homepage: http://www.roguewave.com/products/totalview.aspx ")
      conflict("debugger/TotalView")
      prepend_path("MANPATH","/opt/apps/resif/devel/v1.1-20150414/core/software/debugger/TotalView/8.12.0-0-linux-x86-64/toolworks/totalview.8.12.0-0/man")
      prepend_path("PATH","/opt/apps/resif/devel/v1.1-20150414/core/software/debugger/TotalView/8.12.0-0-linux-x86-64/toolworks/totalview.8.12.0-0/bin")
      setenv("EBROOTTOTALVIEW","/opt/apps/resif/devel/v1.1-20150414/core/software/debugger/TotalView/8.12.0-0-linux-x86-64")
      setenv("EBVERSIONTOTALVIEW","8.12.0-0")
      setenv("EBDEVELTOTALVIEW","/opt/apps/resif/devel/v1.1-20150414/core/software/debugger/TotalView/8.12.0-0-linux-x86-64/easybuild/debugger-TotalView-8.12.0-0-linux-x86-64-easybuild-devel")
      setenv("TVDSVRLAUNCHCMD","oarsh")
      prepend_path("LM_LICENSE_FILE","/opt/apps/resif/devel/v1.1-20150414/core/software/debugger/TotalView/8.12.0-0-linux-x86-64/opt/apps/licenses/roguewave/license.lic")
      help([[ TotalView is a GUI-based source code defect analysis tool that gives you unprecedented
       control over processes and thread execution and visibility into program state and variables. It allows
       you to debug one or many processes and/or threads in a single window with complete control over program
       execution. This allows you to set breakpoints, stepping line by line through the code on a single thread,
       or with coordinated groups of processes or threads, and run or halt arbitrary sets of processes or threads.
       You can reproduce and troubleshoot difficult problems that can occur in concurrent programs that take
       advantage of threads, OpenMP, MPI, GPUs or coprocessors. - Homepage: http://www.roguewave.com/products/totalview.aspx
    
      ]])
    
    
     svarrette@gaia-27(gaia-cluster) ~> module load debugger/TotalView
    
  • you can now run RogueWave TotalView by issuing the command totalview

Troubleshooting

Status of the platform