Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Develop global seed dispersal unit test check #7

Open
glemieux opened this issue Aug 1, 2022 · 2 comments
Open

Develop global seed dispersal unit test check #7

glemieux opened this issue Aug 1, 2022 · 2 comments

Comments

@glemieux
Copy link
Owner

glemieux commented Aug 1, 2022

Currently, we are testing for mass conservation, by plotting the amount of seeds out against the expected amount of seeds in. This is easy enough to visualize as a check for two gridcells, but with a full global run we need a better unit test for this. This will be complicated in the future by the fact that we will want to "lose" mass to non-vegetated land units and will need to keep track of an error term.

@glemieux glemieux changed the title Develop global seed unit test check Develop global seed dispersal unit test check Aug 1, 2022
@glemieux
Copy link
Owner Author

Another complicating factor with this is how to handle the coordination of when seeds input/output is calculated and dispersed. Currently we are calculating both inputs and outputs with the SeedIn routine which occurs prior to mpi calls to disperse the seeds. As such, there will be some sort of "lag" in the calculation that needs to be considered.

@glemieux
Copy link
Owner Author

Overriding the dispersal parameters and/or distances to input as a zero into the exponential terms of the dispersal kernel is one way to test the rest of the code and math around dispersal. Thinking about this made me realize that this likely isn't one unit test, but multiple separate unit tests.

From a semantic standpoint, unit tests are really at the procedure level. Even then, some of these would be difficult to develop as unit tests given the amount of infrastructure needed for some of them that is not easily replicated.

glemieux pushed a commit that referenced this issue Jun 13, 2023
cee/15.0.0 with GPU MPI buffers can crash in a system lib like this:

#4  0x00007fffe159e35b in (anonymous namespace)::do_free_with_callback(void*, void (*)(void*)) [clone .constprop.0] () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1
#5  0x00007fffe15a8f16 in tc_free () from /opt/cray/pe/cce/15.0.0/cce/x86_64/lib/libtcmalloc_minimal.so.1
#6  0x00007fffe99c2bcd in _dlerror_run () from /lib64/libdl.so.2
#7  0x00007fffe99c2481 in dlopen@@GLIBC_2.2.5 () from /lib64/libdl.so.2
#8  0x00007fffea7bce42 in _ad_cray_lock_init () from /opt/cray/pe/lib64/libmpi_cray.so.12
#9  0x00007fffed7eb37a in call_init.part () from /lib64/ld-linux-x86-64.so.2
#10 0x00007fffed7eb496 in _dl_init () from /lib64/ld-linux-x86-64.so.2
#11 0x00007fffed7dc58a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#12 0x0000000000000001 in ?? ()
#13 0x00007fffffff42e7 in ?? ()
#14 0x0000000000000000 in ?? ()

Work around this by using cee/14.0.3.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant