Comments (24)
from schism.
from schism.
from schism.
from schism.
Thanks @josephzhang8 . Two questions.
Is the mesh loaded in its entirety on one node before partitioning? If this is the case, what is the amount of memory we might need for such a big mesh? I suppose this creates a high demand for the master node is terms of memory, no?
Can you point me to the documentation on how to use static partition?
from schism.
@josephzhang8 Thank you! The VMs we use have 448GB RAM and 120 cores. But we can use fewer cores, e.g. 96 per node which would give us something like 4.5GB/core. So this amount of RAM per core should be doable.
Are the instructions the same for schism 5.9? Because that's what we currently use
from schism.
from schism.
I tried to follow the instructions for the static partitioning but the metis prepration step (i.e. step 2) is failing with a segmentation fault. The problem is that:
- we have a global mesh with the full resolution for the coastlines. This translates to 180491 land boundaries with the smallest one consisting of 3 nodes and the larger one (Eurasia+Africa) consisting of 1181108 nodes.
- The code tries to allocate a single 2D array for all the land boundaries, so it needs enough RAM for: 8 * 180491 * 1181108 = 1705GB and this obviously fails.
The good news is that, from what I understood, the metis prepration script does not really use the ilnd
table. So if we comment out the lines referencing ilnd
then the script runs and produces the graphinfo
file. The relevant block of code is:
schism/src/Utility/Grid_Scripts/metis_prep.f90
Lines 272 to 290 in 9d7230e
@josephzhang8 Can you confirm that ilnd
is indeed not needed for the metis preparation?
BTW, the segmentation fault happens when we first try to assign a value to ilnd
(i.e. line 287). Checking stat
after the allocation (line 272) would make it a bit easier to figure out what is going on.
If you want, I can make a PR to remove ilnd
or add a check after the allocation. No problem if you'd rather fix it on your end, too.
All that being said, I think that our main problem remains. If I understand the code correctly (and I should mention that my Fortran knowledge is nothing to speak of), the main schism code also tries to do the exact same allocation. The relevant lines are:
schism/src/Hydro/grid_subs.F90
Lines 901 to 902 in 9d7230e
If this is True, then for the grid in question we do need 1705GB per process which unfortunately is not really feasible...
from schism.
from schism.
Thank you @josephzhang8
We did test the division of the land boundaries on a smaller model and indeed it seems to be working fine. We will let you know how it goes after testing it on the global model, too.
from schism.
Dear @josephzhang8. We have split the boundaries on the big mesh and although the sanity check seems to work we were unable to effectively run it on Azure. You can find the model here. Hopefully, you can use it as a test case for possible modifications in SCHISM. If you manage to make it work on your end, we would be interested to try it out. In the mean time we'll try something simpler. Thanks.
from schism.
from schism.
from schism.
Thank you for looking into this Joseph. Try this: https://ppwdevarchivesa.blob.core.windows.net/seareport/sflux_sample?sp=r&st=2023-06-12T20:57:49Z&se=2023-07-12T04:57:49Z&spr=https&sv=2022-11-02&sr=d&sig=5FZSchXoh1xv1ylZytrxit92%2FN7zBz5xTRnTcikU0mA%3D&sdd=1
from schism.
from schism.
from schism.
from schism.
Great news!
I know that by forcing it to follow such a convoluted coastline I am asking for trouble. I will try some ways to make it more manageable and let you know. We'll also try pre-partition and with your estimate of of ram/core well give it another try.
Based on your experience, could such a mesh work? I know that the mesh is not balanced and I wonder if the skewness of the elements might also give problems both in terms of stability and accuracy.
from schism.
@josephzhang8 Try with this: https://ppwdevarchivesa.blob.core.windows.net/seareport/sflux_sample/sflux_air_1.0001.nc?sp=r&st=2023-06-13T06:26:59Z&se=2023-06-17T14:26:59Z&spr=https&sv=2022-11-02&sr=b&sig=YvGUDz5EzKWbLUw3YOt%2BSFzajJTV7txLCszAHcXWHqQ%3D
from schism.
from schism.
@josephzhang8 The netcdf is indeed 24GB but it is uncompressed. Does schism support reading compressed/deflated Netcdf files?
from schism.
from schism.
Joseph, indeed the metro forcing is every hour. That means that wtiminc
should be 3600?
from schism.
from schism.
Related Issues (20)
- Question about the meaning of "wetted cross section length" error HOT 15
- Error with two open boundries HOT 1
- Python package support for SCHISM HOT 7
- sed HOT 1
- Make idry_e a target for being pointed to by ESMF interface HOT 1
- Error copying Fortran module "include/schism_glbl.mod" HOT 23
- Incorrect Pi value in read_output10_xyz.f90 HOT 2
- Help SCHISM-WWM III HOT 1
- Update ugrid conventions HOT 13
- Help - pschism seems to not able to find the hdf5 libraries and netcdf-c libraries. HOT 3
- General Info: how to run Pschism on AWS pcluster with Spack HOT 1
- Format overflow in staout HOT 1
- Issue Running with Sflux generated from HAFS HOT 10
- No rule to make target 'pschism' / BLD_STANDALONE HOT 5
- Exit code is zero even when simulator fails HOT 3
- Compile GOTM 3.2.5 HOT 2
- Updating variable names in hotstart.nc HOT 6
- latest version in git wants deprecated NetCDF-Fotran build (with f90) HOT 7
- set_mask error during compilation of SCHISM-FABMv2-(ECOSMO) HOT 6
- FABM/SCHISM: UNFULFILLED DEPENDENCY: downwelling_photosynthetic_radiative_flux HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schism.