-
Notifications
You must be signed in to change notification settings - Fork 1
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
Add benchmarks using lindi #53
Conversation
@CodyCBakerPhD @sinha-r the outline of all the LINDI test cases is here so please take a look. I added parameter configurations so we can test that these work, but we still need to configure these for a proper test benchmark. Note, I have not had the chance to run these test cases yet, so there may still be some bugs to fix. If you have a chance to give these a spin, then please let me know if you come across any errors (or better yet, just push fixes on the PR 😉 ) |
I don't know LINDI well enough yet, so I trust you on this - just let me know when running as expected |
for more information, see https://pre-commit.ci
I fixed a few small bugs and the LINDI tests seem to run now. I'm investigating a last issue with the benchmark for slicing with lindi, i.e., |
I did a full run of the benchmark and overall I think everything looks good. I'm still seeing strange behavior when running @CodyCBakerPhD @sinha-r @rly could one of you run |
Co-authored-by: Ryan Ly <[email protected]>
Co-authored-by: Ryan Ly <[email protected]>
Thanks @rly for taking a look. @CodyCBakerPhD @sinha-r aside from the failure for |
src/nwb_benchmarks/benchmarks/network_tracking_remote_file_reading.py
Outdated
Show resolved
Hide resolved
A few suggestions to clean things up. Otherwise looks good. |
for more information, see https://pre-commit.ci
I fixed a few things when I ran it on my end. Added explicit skips to network benchmarks too @oruebel Please delete your If you get that same error again please share your intermediate results file (in that |
…ding.py Co-authored-by: Ryan Ly <[email protected]>
Co-authored-by: Ryan Ly <[email protected]>
@CodyCBakerPhD I deleted my
|
Oh, sorry - I did not read your original post closely enough to see that you were only running a single benchmark In this case the behavior is expected, no? The one test failed so there are no sucessful results to parse. Same behavior on my system |
def track_network_activity_during_slice(self, s3_url: str, object_name: str, slice_range: Tuple[slice]): | ||
"""Track network activity for slicing into a Zarr dataset""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just caught this one - I assume this was supposed to be timing not tracking given the file it's in
OK I can confirm, quite confusingly, that running the relevant pieces of code in a normal ipython console seems to work just fine However, and sorry if I did not document this anywhere (feel free to add it somewhere), but for things like this it can help to use the When I do that I get
And that 'exit status' bit is a direct error code (might be windows specific) from the isolated subprocess that ran the timing test Error code 3221225477 traces back to some kind of access violation in memory Since this style of benchmarks works fine for other cases, I'm guessing this is an edge case with LINDI when running through subprocesses or something analogous. I'd suggest the LINDI team attempt to reproduce in an even simpler manner outside of ASV (even a direct |
Other than finding and fixing the access violation on the LINDI side there are two options here I can try to hack ASV to suppress this error code when returning results for a particular benchmark; they seem to do this for a couple of specific known error codes - but this diverges us from the codebase and I have no idea how tricky it would end up being and might make other problems cascade Or we can change that test to |
I suspect that won't work. The exact same test also exists in |
I filed issue #57 Hopefully the LINDI team can help with identifying the issue. I would suggest we hold of with making modifications in ASV until we have tracked down the source of the issue a bit more. @CodyCBakerPhD is it possible to attach a PDB debugger when running asv so that we could step through the procees? |
I'll merge this PR since we are tracking the remaining issue in #57 |
core/_streaming.py
to add functions for reading HDF5 NWB file with Lindi and for generating a local lindi JSON index file (i.e., a LINDI reference store)time_remote_file_reading.py
. Here we need to cover the cases to:- Read a remote file from S3 where the LINIDI JSON file is remote in S3
- Create a new Lindi reference store (JSON index) locally for a remote file
- Read a remote file from S3 where the LINDI JSON file is local
- Read a remote file from S3 where the LINDI JSON file does not exist yet (i.e., we need to both create the JSON and then read the file)
time_remote_slicing.py
. Here we only need to consider the case where the remote LINDI JSON reference filesystem already exists. The case where we need to generate the JSON is covered in thetime_remote_file_reading.py
tests.network_tracking_remote_slicing.py
. Same test as intime_remote_slicing.py
but with network tracking.network_tracking_remote_file_reading.py
. These mirror the tests intime_remote_file_reading.py
, but some of the cases are removed.