-
Notifications
You must be signed in to change notification settings - Fork 13
Closes #1285_supergzip_rust_implementation_update #1286
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
base: develop
Are you sure you want to change the base?
Closes #1285_supergzip_rust_implementation_update #1286
Conversation
HenkMutsaerts
left a comment
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.
What I don't understand: the original SuperGZip was implemented by Michael for Windows specifically. But now you state that you created something that performs faster (un)zipping in Unix? That would be great of course, but we need to keep xASL_adm_GzipAllFiles to work for all platforms.
Minor name comments:
- a) CamelCase would give
SuperGZip.exe - b) Why do you call it
unzip, thegzipthat you replace does both zip and unzip right?
Should we improve xASL_adm_GzipNifti and xASL_adm_UnzipNifti accordingly?
|
Couple of points:
|
|
@MauricePasternak Thanks for clarifying this! If we make this change, it should work with both multi-core processors and single-threaded processors (if ExploreASL is ran in a server, it could be ran single-threaded but with multiple ExploreASL instances). Can we also address #1052 in here (implementing this also for Linux and macOS)? |
HenkMutsaerts
left a comment
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.
Nice work! See also my other comment above
| glob_pat = join(['"' ROOT '/**/*.nii"']); | ||
| % Get SuperGzip path | ||
| PathToSuperGzip = fullfile(pathExternal, 'SuperGZip', 'SuperGZip_Windows.exe'); | ||
| PathToSuperGzip = fullfile(pathExternal, 'SuperGZip', 'super-gunzip.exe'); |
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.
I would still not call it super-gunzip.exe if we also (or even more frequently) use it for zipping; fine to rename to super-zip.exe?
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.
Sounds good to me. I'll keep calling it super-gunzip in the original repo & its release page. But when copying over to ExploreASL, will change name to just super-zip.
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.
I would still say that that is weird. No zip package calls itself unzip as primary name right? 7zip not 7unzip. Winrar not WinUnrar. Etc. But perhaps you have another reason to call it this way.
Linked issue
Closes #1285
Comments
Tested on 1000+ files in a Population folder and then re-running the study. Noticeable improvement over the old Python version.
As in the original issue, the new version of the program can beat out native gzip in Unix under the condition that at least 3 threads are used. No logic was added for Unix, as this was meant to be a simple language & CLI change, but it wouldn't be difficult to make a check for whether is it reasonable to do so. I leave it to the discretion of reviewers on preferred logic.