Skip to content

BUG: Fix Import DREAM3D Memory Usage #1341

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

Open
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

mmarineBlueQuartz
Copy link
Collaborator

Broke up importing DREAM3D files into two stages so that only DataObjects requested are fully imported. Other data is imported using empty data stores to serve as placeholders. Geometries will always import the corresponding arrays completely during preflight due to other filters using those arrays during their calculations.

Added ability to import HDF5 dataset as an AbstractDataStore with or without predetermined tuple and component shapes. This will use the appropriate type of data store based on the required memory size and user preferences. Reading as a vector would not work when using out-of-core data.

* ImportH5ObjectPathsAction allocation improvements.
* EmptyListStore created for preflight and unimported NeighborLists.
* Allow StringArray to change its underlying store.
* Update HDF5 DataStructure IO to finish importing preflight DataObjects.
* Update DataStoreUtilities to create arbitrary AbstractListStores based on memory usage.
* Update Dream3dIO to finish importing DataObjects from DREAM3D files.
* Update DatasetIO to read values as an AbstractDataStore.

Updates BlueQuartzSoftware#1312
Updates BlueQuartzSoftware#1273
* Import Legacy DREAM3D file always imports geometry arrays as if running in execute.
* Fixing importing DREAM3D data so that data importing can be delayed until running execute.
* Fixed PartitionGeometryTest
* Fixed importing Legacy DREAM.3D files.
* Fixed importing current DREAM.3D files for filters that require data during preflight and updated DataStructureReader for partially imported data.
* added additional readAsDataStore method for DatasetIO with specific tuple and component dimensions.
* Commented out ImportH5ObjectPathsAction errors related to partial data imports as they are no longer viable with the rework.
@mmarineBlueQuartz mmarineBlueQuartz force-pushed the feature/1273_NeighborListIO branch from d322f2c to d5ffed0 Compare June 24, 2025 17:06
@imikejackson
Copy link
Contributor

@mmarineBlueQuartz Initial testing on a 75 GB .dream3d file allocated over 100GB of RAM just trying to add the "Read DREAm3D" filter to the pipeline. If you need this test file let me know and I can post it to Google Drive

imikejackson and others added 3 commits June 25, 2025 16:08
Geometries only add required data ID if using empty data stores
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

Successfully merging this pull request may close these issues.

2 participants