-
Notifications
You must be signed in to change notification settings - Fork 50
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
Issue looping through ts.get_field() #377
Comments
Thanks a lot for reporting this issue @ashwynsam ! @ax3l From the Traceback and the error message
it looks like the error is raised directly by ADIOS2. Have you observed a similar error in the past, on some specific platforms? Also: this seems related to this discussion but I am not sure what the fix is. |
@RemiLehe I am running this on Stanford's Sherlock computer (https://www.sherlock.stanford.edu/) . |
Thanks for the ping! This looks like too many open files. Can you print what You can increase the limit temporarily with But there is a better way. openPMD supports multiple ways to encode in files how to store multiple steps. For convenience, but bad for performance, many codes (incl. WarpX) default to create a new file (with subfiles) per step, which we call file based encoding in openPMD. An alternative is group based and especially for ADIOS2 variable based encoding, which keeps the numbers of files constant and is also faster. The correspond WarpX option you can try is You will need to rerun your simulation for that. https://warpx.readthedocs.io/en/latest/usage/parameters.html#full-diagnostics |
@ax3l , I get 256 when I run both those commands. Thanks for the suggestions, I will look into these. |
@ax3l , I re ran the sim with
Suggesting that I can only access data from the 0th step when I use Can you help me with accessing the data ? |
@ax3l More specifically, when using the above workflow (with variable-based encoding), it seems that we are not using the right
results in:
@ax3l Do you know how to fix this? |
I ran a WarpX simulation with 3000 time steps and I outputted data at every 25 time steps. I want to create a plot of ion density at a particular spatial point vs. time. I first get a 2D slice of the ion density. From this 2D array, I want to collect the data at just the (50,50) cell (this is an arbitrary point). I append this data into a list. Here is the code I used to do this:
I initialized
ts
as :ts = OpenPMDTimeSeries('/scratch/users/amsam/soliton_det/potentialknob/diags/diag1')
However, when I try to run the above for loop, I get the following error:
To debug, I printed out the data at that point in the above loop and I noticed that it runs fine for 39 iterations and then throws the above error. I get this same error when I try to create plots of the 2D data slices at every 25 time steps in my for loop (I am only showing this simpler for loop above to demonstrate this error). Please let me know if you have any insights into how to fix this.
Thank you,
Ashwyn
The text was updated successfully, but these errors were encountered: