Kérdés:
Hogyan kezdjem a Modular Ocean Model 6 verzióval, azaz a MOM6-tal az ubuntu linuxos gépemen?
tech_climate
2019-12-10 15:54:58 UTC
view on stackexchange narkive permalink

Óceánmodellezést tanulok, és a MOM6-tal kezdtem. Útmutatóra volt szükségem, hogy honnan induljak és hogyan futtassam a modellt a helyi gépemen (Ubuntu) különféle feladatok elvégzéséhez, például újrarajzoláshoz vagy kezdeti feltételek létrehozásához, esetleg kicsi futtatásokhoz, amelyek nem sok időt vesznek igénybe.

Egy válasz:
Manmeet Singh
2019-12-10 15:55:56 UTC
view on stackexchange narkive permalink

Akkor kövesse az utasításokat írtam https://medium.com/@manmeet20singh11/installing-mom6-on-ubuntu-57918a200293?sk%3D9961d6f8565659b05e007349c47568b7&sa=D&source=hangouts&ust=1576058141492000&usg=AFQjCNH74gi6j9XgT6I3509nb8Y0gtj4-Q

A MOM6 telepítése az Ubuntu-ra

A modell és az alapkönyvtárak letöltése

https://github.com/NOAA-GFDL/MOM6-examples/wiki/Installing-MOM6-in-a-virtual-machine-running-Ubuntu követése

És a videó https://www.youtube.com/watch?v=a5hKh8s_1b0&t=181s

  sudo apt-get install git tcsh pkg-configsudo apt -get install gfortransudo apt-get install netcdf-bin libnetcdf-dev libnetcdff-devsudo apt-get install openmpi-bin libopenmpi-devsudo apt-get install libnetcdff-devgit clone - rekurzív https://github.com/NOAA-GFDL/ MOM6-példák demok demo  

Nyissa meg az src / mkmf / templates / linu fájlt x-gnu.mk és keresse meg a LIBS változót. Most ebben a fájlban adja hozzá a szintaxist

  # Add -lnetcdffLIBS + = -lnetcdff  

Fordítás

Most készen állunk a fordítás megkezdésére, és ezt meg fogjuk tenni a https://github.com/NOAA-GFDL/MOM6-examples/wiki/Getting-started#compiling-the-models oldalon

Az utasítások az Intel fordító beállítására vonatkoznak, ezért néhány parancsot szerkesztenünk kell ezeken a parancsokon, mert a gfortran-t fogjuk használni, amely a GNUs fortran.

  Make könyvtár a fejlett könyvtárak felépítéséhez mkdir -p build / gnu / shared / repro / cd build / gnu / shared / repro /  

Ezután futtatjuk az mkmf list path eszközöket és megadjuk neki az FMS forráskódjának relatív elérési útját

  ../../../../src/mkmf/bin/list_paths -l ../ .. /../../src/FMS  

Tehát amit tett, feltölti ezt a fájlt: elérési utak_nevek mindezekkel a fájlokkal, és most futtatni fogunk egy másik mkmf eszközt, és gondoskodunk róla, és megadjuk a linux gnu sablont, amelyet szerkesztettük, és azt mondjuk neki, hogy építse fel az FMS

  ../../../../src/mkmf/bin/mkmf -t ../../. ./../src/mkmf/templates/linux-gnu.mk -p libfms.a -c "-Duse_libMPI -Duse_netCDF -DSPMD" útvonalnevek  

és ez a Makefile fájlt p>

Végül beírhatjuk

  make NETCDF = 3 REPRO = 1 FC = mpif77 CC = mpicc libfms.a -j  

Így felépíti a lib FMS kódot, amelyet láthat

  $ ls -l libfms.a -rw-rw-r-- 1 manmeet manmeet 13863094 10. dec. 13:22 libfms.a  

Most visszatérünk, és új mappákat készítünk: ocean_only / repro

  cd ../../mkdir -p ocean_only / reprocd ocean_only / repro  

Most újra futtatjuk a list paths parancsot, ami csak leállt, és ezúttal az aktuális könyvtár megadása egyfajta fajta és mérőeszközként, amelybe néhány forrásfájlt be akarsz tenni, és ez a pont, akkor ott van a MOM6 forráskódjának relatív útvonala, és összekapcsolunk egy dinamikus fájlt. végrehajtható, ezért kitesszük a dinamikus könyvtárat a konfigurációs forrásból, és létrehozunk egy beállítást a solo meghajtók használatával, az illesztőprogramnak volt konfigurációs forrása, és az src alatt lévő összes forráskódot használjuk.

  ../../../../src/mkmf/bin/list_paths ./ ../../../../src/MOM6/{config_src/dynamic,config_src/solo_driver , src / {*, * / *}} /  

Tehát ez újból létrehozott egy path_names fájlt, amely feltölti az összes MOM6 forráskódot. Most újra futtatni fogjuk az mkmf eszközt, és ezúttal a cél MOM6, és újra meg kell változtatnunk a sablont a linux-gnu

  ../../../../src/mkmf/bin/mkmf -t ../../../../src/mkmf/templates/linux-gnu.mk -o '-I ../../ shared / repro' -p MOM6 -l '-L ../../ shared / repro -lfms' -c '-Duse_libMPI -Duse_netCDF -DSPMD' path_names  

Ezzel létrehozza a Makefile fájlt, és most egy hasonló parancs segítségével futtathatjuk a Makefile fájlt, de a cél MOM6 lesz.

  make NETCDF = 3 REPRO = 1 FC = mpif77 CC = mpicc LD = mpif77 MOM6 -j  

Most megvan a MOM6 nevű futtatható fájl, és be fogjuk mutatni, hogy működik.

Ugrás a könyvtár tetejére és majd a double_gyre

  cd ../../../../cd ocean_only / double_gyre / mpirun -n 1 ../../build/gnu/ocean_only/repro/MOM6 

Ez egy egyszerű 10 napos teszt, és ehhez hasonlót ad

  $ mpirun -n 1 ../../build/gnu/ocean_only / repro / MOM6NOTE: MPP_DOMAINS_SET_STACK_SIZE: veremméret 32768-ra van állítva. &MPP_IO_NML HEADER_BUFFER_VAL = 16384, GLOBAL_FIELD_ON_ROOT_PE = T, IO_CLOCKS_LE = F, SHU TE_LEVEL = -1, CF_COMPLIANCE = F, / MEGJEGYZÉS: MPP_IO_SET_STACK_SIZE: veremméret 131072-re van állítva. MEGJEGYZÉS: ======== A MOM_driver által hajtott modell ======== MEGJEGYZÉS: , MOM_driver.F90MEGJEGYZÉS: open_param_file: A MOM_input sikeresen megnyílt. MEGJEGYZÉS: open_param_file: A MOM_override sikeresen megnyílt. MOM domén bomlás whalo = 4, ehalo = 4, shalo = 4, nhalo = 4 X-AXIS = 44 Y-AXIS = 40 MOMc domén bomláswhalo = 2, ehalo = 2, shalo = 2, nhalo = 2 X-AXIS = 22 Y -AXIS = 20MEGJEGYZÉS: diag_manager_mod :: diag_manager_init: a prepend_date csak akkor támogatott, ha a diag_manager_init meghívást az time_init jelenlétével végzik. MOM domén bomlás whalo = 4, ehalo = 4, shalo = 4, nhalo = 4 X-AXIS = 44 Y-AXIS = 40 MOM domén bomláswhalo = 4, ehalo = 4, shalo = 4, nhalo = 4 X-AXIS = 44
Y-AXIS = 40 FIGYELMEZTETÉS: depth_list_setup: ./Depth_list.nc nem létezik. Új fájl létrehozása. FIGYELEM: depth_list_setup: ./Depth_list.nc nem létezik. Új fájl létrehozása. MOM nap 0.000 0: En 1.423707E-13, MaxCFL 0.00000, Mass 5.288178268008E + 18 Összes energia: 4126F9E3C5B6FEAF 7.5288188616176497E + 05 Összes tömeg: 5.2881782680077681E + 18, Change: 0.0000000000000000 +00 (0.0E + 00) MOM 1.000 nap 72: En 4.580432E-06, MaxCFL 0.00023, Mass 5.288178268008E + 18 Összes energia: 42B607A80A83D4D0 2.4222139843540812E + 13 Összes tömeg: 5.2881782680077681E + 18, Change: -4.371577070 Hiba: -4.37871E ​​+ 01 (-8.3E-18) MOM 2.000. Nap 144: En 8.958206E-06, MaxCFL 0.00040, Mass 5.288178268008E + 18 Összes energia: 42C58AE533474153 4.7372590026370648E + 13 Összes tömeg: 5.288178268007768 : 4.0318344822758547E + 00 Hiba: 4.03183E + 00 (7.6E-19) MOM nap, 3.000 216: En 1.166708E-05, MaxCFL 0.00045, Mass 5.288178268008E + 18 Összes energia: 42CC0E8B5CE02C7F 6.1697586479192992E2122182 262 18, változás: 3.7798219410031322E + 01 hiba: 3.77982E + 0 1 (7.1E-18) MOM 4.000. Nap 288: En 1.542296E-05, MaxCFL 0.00044, Mass 5.288178268008E + 18 Összes energia: 42D28B60D5891799 8.155933744443939E + 13 Összes tömeg: 5.2881782680077681E + 18, Change: -5,37153356512 : -5,37153E + 01 (-1,0E-17) MOM 5.000 360. nap: En 1.826022E-05, MaxCFL 0.00053, tömeg 5.288178268008E + 18 Teljes energia: 42D5F4B97D5D13C3 9.6563312817231047E + 13 Teljes tömeg: 5.2881782680077681 -2.1099290705067006E + 01 Hiba: -2.10993E + 01 (-4.0E-18) MOM nap 6.000 432: En 2.397431E-05, MaxCFL 0.00062, Mass 5.288178268008E + 18 Összes energia: 42DCD397A5E14CB5 1.2678043163166683E + 14 Összesen: Massage E + 18, változás: -1,0757841703346941E + 01 hiba: -1,07578E + 01 (-2,0E-18) MOM nap 7.000 504: En 2,927962E-05, MaxCFL 0,00073, tömeg 5.288178268008E + 18
Összes energia: 42E19A5109E607AC 1.5483585791186938E + 14 Teljes tömeg: 5.2881782680077681E + 18, Változás: 4.6503600220410505E + 01 Hiba: 4.65036E + 01 (8.8E-18) MOM Nap 8.000 576: En 3.486441E-05, MaxCFL80008 E + 18 összes energia: 42E4F5D995BB3999 1,8436920009364478E + 14 összes tömeg: 5.2881782680077681E + 18, változás: 2.4524203108417453E + 01 hiba: 2.45242E + 01 (4.6E-18) MOM nap 9.000 648: En 4.195565L-05, MaxC , Tömeg 5.288178268008E + 18 Teljes energia: 42E9393C9CAC4D82 2.2186896584766006E + 14 Összes tömeg: 5.2881782680077681E + 18, Változás: -2.0342624683786397E + 01 Hiba: -2.03426E + 01 (-3.8E-18) MOM 4.000.420 720 E-05, MaxCFL 0.00100, tömeg 5.288178268008E + 18 összes energia: 42EBAEF71B9A7E17 2.4350627232664072E + 14 teljes tömeg: 5.2881782680077681E + 18, változás: 2.2570880028229340E + 01 hiba: 2.25709E + 01 (4.3E-18) FAT : Nincs ilyen fájl vagy könyvtár File = RESTART / MOM.res.ncFATAL: NETCDF HIBA: Nem sikerült h fájl vagy könyvtár File = RESTART / MOM.res.nc ------------------------------------- ------------------------------------- Az MPI_ABORT-ot az 1. hibakóddal az MPI_COMM_WORLD kommunikátor 0. helyén hívták meg. MEGJEGYZÉS: Az MPI_ABORT meghívása az Open MPI hatására megöli az összes MPI folyamatot. Előfordulhat, hogy nem látja más folyamatok kimenetét, pontosan attól függően, hogy az Open MPI megöli-e őket .------------------ -------------------------------------------------- -------------------------------------------------- ----------- Az elsődleges feladat rendesen megszűnt, de 1 folyamat visszaadta a nullától eltérő kilépési kódot. Felhasználói irányonként a munkát megszakították .------------ -------------------------------------------------- -------------------------------------------------- ----------------- A mpirun azt észlelte, hogy egy vagy több folyamat kilépett nem nulla státusszal, ezáltal a munkát megszüntették. Az első folyamat erre a következő volt: Folyamat neve: [[19779,1], 0] Kilépési kód: 1
-------------------------------------------------- ------------------------  

Így hibát fogunk kapni, ha nem hoztunk létre újraindítást. Ezt most meg fogjuk tenni

  mkdir -p RESTARTmpirun -n 1 ../../build/gnu/ocean_only/repro/MOM6

Következő két processzort fog használni, és látjuk, hogy most gyorsabban fut

  mpirun -n 2 ../../ build / gnu / ocean_only / repro / MOM6  

https://github.com/NOAA-GFDL/MOM6-examples/wiki/Ubuntu-compiler-environment

IMO, általában a legjobb, ha a releváns információkat és tartalmat _ magában a válaszba_ tartalmazza, nem csak egy linket arra, hogy hol lehet a tartalom. Ez hasznosabb a jövőbeli olvasók számára, vagy ha a link megromlik. A link jó, ha van rá hivatkozás vagy további információ. Lásd még: [Hogyan válaszoljak] (https://earthscience.stackexchange.com/help/how-to-answer).


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 4.0 licencért, amely alatt terjesztik.
Loading...