User Tools

Site Tools


nimrod_2022

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nimrod_2022 [2022/09/14 06:54] simonw7nimrod_2022 [2022/09/14 08:29] (current) simonw7
Line 1: Line 1:
 ====== NIMROD 2022 ====== ====== NIMROD 2022 ======
  
-The method for getting NIMROD running at NERSC has changed slightly as the default version of some modules on NERSC have changed. This wiki will give instructions to help set up the most recent version of nimdevel and include some tips to help compile older versions of NIMROD. This page  will run through the steps necessary to compile the code at NERSC.  +The method for getting NIMROD running at NERSC has changed slightly as the default version of some modules on NERSC have changed. This wiki will give instructions to help set up the most recent version of nimdevel and include some tips to help compile older versions of NIMROD. This page  will run through the steps necessary to compile the code at NERSC.  
 + 
  
 ===== Accessing the newest version of nimdevel  ===== ===== Accessing the newest version of nimdevel  =====
Line 14: Line 15:
  
   svn co --username <username> https://ice.txcorp.com/nimsvn/nimroot/trunk nimdevel   svn co --username <username> https://ice.txcorp.com/nimsvn/nimroot/trunk nimdevel
- 
-   
-   
-   
- 
- 
- 
  
 ===== Compiling the newest version of NIMDEVEL at NERSC  ===== ===== Compiling the newest version of NIMDEVEL at NERSC  =====
Line 44: Line 38:
 Now that the necessary modules have been loaded the code can be compiled. There are two main methods of doing this at NERSC. The first is to use the mknimall.sh script provided if nimall is checked out. Alternatively, Jake's config scripts may be used to build the code on Cori.  Now that the necessary modules have been loaded the code can be compiled. There are two main methods of doing this at NERSC. The first is to use the mknimall.sh script provided if nimall is checked out. Alternatively, Jake's config scripts may be used to build the code on Cori. 
  
-====   mknimall method  ====+====   Mknimall method  ====
    
      
Line 74: Line 68:
 **Step 3:** Modify the config scripts. The config scripts will need modifying to correctly build the code. Two lines will need to be edited so that the source and install directories are changed to the correct locations in the user's directory. The lines to change should be modified to read :  **Step 3:** Modify the config scripts. The config scripts will need modifying to correctly build the code. Two lines will need to be edited so that the source and install directories are changed to the correct locations in the user's directory. The lines to change should be modified to read : 
  
-   DCMAKE_INSTALL_PREFIX:PATH=/ <full path to install directory>+<code> 
-   DSUPRA_SEARCH_PATH:PATH='/global/common/software/nimrod/cori/software-gcc-11.2;/global/common/software/nimrod/cori/software-gcc-11.2/userdocs' /<full path to nimdevel source code directory> +-DCMAKE_INSTALL_PREFIX:PATH=/ <full path to install directory>
 +-DSUPRA_SEARCH_PATH:PATH='/global/common/software/nimrod/cori/software-gcc-11.2;/global/common/software/nimrod/cori/software-gcc-11.2/userdocs' /<full path to nimdevel source code directory
 +</code
  
 After this has been done, run the config scripts from the corresponding directory and then use the make install command. This should successfully make the serial and parallel versions of nimdevel.  After this has been done, run the config scripts from the corresponding directory and then use the make install command. This should successfully make the serial and parallel versions of nimdevel. 
      
 ===== Compiling older versions at NERSC ===== ===== Compiling older versions at NERSC =====
 +
 +Some older versions of Nimrod ( such as 3.2.4) may contain a README that instructs the user to compile the code slightly differently . When following these instructions the user may run into some errors when compiling. One common issue is getting a type mismatch error when calling the mpi_bcast routine. This is due to these version of nimrod being created and compiled using an older version of gcc. To fix this issue, add the fortran compile flag:
 +
 +<code>
 +-fallow-argument-mismatch
 +</code>
 + 
 +If using cmake to compile, this can be done by adding the following line into the CMakeLists.txt file:
 +
 +  set(CMAKE_Fortran_FLAGS "-fallow-argument-mismatch ${CMAKE_Fortran_FLAGS}")
 +
 +
 +=====   Modifying and recompiling the code  =====
 +
 +One method of easily modifying the code one NERSC is to use Juypter notebook. Further instructions can be found here:  https://docs.nersc.gov/services/jupyter/ \\
 +If the source code is modified, the user does not need to repeat all of the steps listed above for compiling the code. Instead the user can move to the build directory and use the make/make install command again. This will save time instead of rebuilding the entire code again.  
 +
 +
 +    
nimrod_2022.1663160099.txt.gz · Last modified: 2022/09/14 06:54 by simonw7