[6508] | 1 | # Where do we run ? |
---|
| 2 | import pathlib, os |
---|
| 3 | |
---|
| 4 | SysName, NodeName, Release, Version, Machine = os.uname () |
---|
| 5 | TGCC = ( 'irene' in NodeName ) |
---|
| 6 | IDRIS = ( 'jeanzay' in NodeName ) |
---|
| 7 | SPIP = ( 'lsce5138' in NodeName ) or ( 'spip' in NodeName.lower () ) |
---|
| 8 | |
---|
| 9 | ## Set site specific libIGCM directories, and other specific stuff |
---|
| 10 | # =========================================================================================== |
---|
| 11 | if TGCC : |
---|
| 12 | CPU = subprocess.getoutput ( 'lscpu | grep "Model name"' ) |
---|
| 13 | if "Intel(R) Xeon(R) Platinum" in CPU : Machine = 'irene' |
---|
| 14 | if "AMD" in CPU : Machine = 'irene-amd' |
---|
| 15 | |
---|
| 16 | if libIGCM : |
---|
| 17 | if ARCHIVE == None : ARCHIVE = subprocess.getoutput ( f'ccc_home --cccstore -d {Project} -u {User}' ) |
---|
| 18 | if STORAGE == None : STORAGE = subprocess.getoutput ( f'ccc_home --cccwork -d {Project} -u {User}' ) |
---|
| 19 | if SCRATCHDIR == None : SCRATCHDIR = subprocess.getoutput ( f'ccc_home --cccscratch -d {Project} -u {User}' ) |
---|
| 20 | if R_IN == None : R_IN = os.path.join ( subprocess.getoutput ( f'ccc_home --cccwork -d igcmg -u igcmg' ), 'IGCM') |
---|
| 21 | if rebuild == None : rebuild = os.path.join ( subprocess.getoutput ( f'ccc_home --ccchome -d igcmg -u igcmg' ), 'Tools', Machine, 'rebuild_nemo', 'bin', 'rebuild_nemo' ) |
---|
| 22 | |
---|
| 23 | ## Specific to run at TGCC. |
---|
| 24 | # Needed before importing a NetCDF library (netCDF4, xarray, cmds, etc ...) |
---|
| 25 | if platform.python_version () == '3.7.5' : |
---|
| 26 | import mpi4py |
---|
| 27 | mpi4py.rc.initialize = False |
---|
| 28 | |
---|
| 29 | ## Creates output directory name |
---|
| 30 | if TmpDir == None : |
---|
| 31 | TmpDir = subprocess.getoutput ( 'ccc_home -s' ) |
---|
| 32 | config['Files']['TmpDir'] = TmpDir |
---|
| 33 | |
---|
| 34 | # =========================================================================================== |
---|
| 35 | if IDRIS : |
---|
| 36 | Machine = 'jean-zay' |
---|
| 37 | if libIGCM : |
---|
| 38 | if ARCHIVE == None : ARCHIVE = os.path.join ( '/', 'gpfsstore' , 'rech', Project, User ) |
---|
| 39 | if STORAGE == None : STORAGE = os.path.join ( '/', 'gpfswork' , 'rech', Project, User ) |
---|
| 40 | if SCRATCHDIR == None : SCRATCHDIR = os.path.join ( '/', 'gpfsscratch', 'rech', Project, User ) |
---|
| 41 | if R_IN == None : R_IN = os.path.join ( '/', 'gpfswork' , 'rech', 'psl', 'commun', 'IGCM' ) |
---|
| 42 | if rebuild == None : rebuild = os.path.join ( '/', 'gpfswork', 'rech', 'psl', 'commun', 'Tools', 'rebuild', 'modipsl_IOIPSL_PLUS_v2_2_4', 'bin', 'rebuild' ) |
---|
| 43 | |
---|
| 44 | ## Creates output directory name |
---|
| 45 | if TmpDir == None : |
---|
| 46 | TmpDir = os.getenv ( 'CCFRSCRATCH' ) |
---|
| 47 | config['Files']['TmpDir'] = TmpDir |
---|
| 48 | |
---|
| 49 | # =========================================================================================== |
---|
| 50 | if SPIP : |
---|
| 51 | Machine = 'spip' |
---|
| 52 | if libIGCM : |
---|
| 53 | if ARCHIVE == None : ARCHIVE = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
| 54 | if STORAGE == None : STORAGE = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
| 55 | if SCRATCHDIR == None : SCRATCHDIR = os.path.join ( '/', 'Users', User, 'Data' ) |
---|
| 56 | if R_IN == None : R_IN = os.path.join ( '/', 'Users', User, 'Data', 'IGCM' ) |
---|
| 57 | |
---|
| 58 | ## Creates output directory name |
---|
| 59 | if TmpDir == None : |
---|
| 60 | TmpDir = os.path.join ( pathlib.Path.home (), 'Scratch' ) |
---|
| 61 | config['Files']['TmpDir'] = TmpDir |
---|
| 62 | |
---|
| 63 | # =========================================================================================== |
---|