We are using datalad and datalad ukb extension to organize and arrange our raw data and projects from UK biobank. we are creating a superdataset with each subject as a subdataset that includes the relevant raw data. so the final superdataset is going to include around 500K subdataset. The issue I am encountering now is that creating a single new subdataset takes a long time (from 1 hr to 3 hrs) that makes the whole process very inefficient. right now, we have around 33K subdataset and it seems that by increasing the number of subjects the new subdataset creation time is increasing.
this is the first stage of creating the superdataset, so we are populating the subdatasets with already downloaded data and just moving the relevant data into the subdataset folders. Here are the commands I am using in the root of superdataset,
datalad create -d subdataset_path
datalad ukb-init -d subdataset_path ID fields
datalad ukb-update -k key -d subdataset_path
datalad save or datalad run to run all above commands
ukb-update uses a surrogate ukbfetch and there is no communication with the ukb server at this point. This whole process is done in the university's HPC system which I mentioned the information below.
I checked the time consumed for each step and the creation time is problematic part which is between 1 to 3 hours for a single subdataset right now (with 33k subdatasets). This time increased gradually as the whole dataset gets larger. My guess is, datalad tries to check some lock files in the large superdataset.
Generally, I want to know, is there a way to make the process more efficient? and what is the datalad team suggestion for such a project?
First, I raised the problem in NeuroStars which I mention here for the reference.
Some system and software info:
datalad version: 0.13.3
operating system: linux x86_64
distribution: CentOS Linux/7.7.1908/Core
filesystem: utf-8
We are using
dataladanddatalad ukbextension to organize and arrange our raw data and projects from UK biobank. we are creating a superdataset with each subject as a subdataset that includes the relevant raw data. so the final superdataset is going to include around 500K subdataset. The issue I am encountering now is that creating a single new subdataset takes a long time (from 1 hr to 3 hrs) that makes the whole process very inefficient. right now, we have around 33K subdataset and it seems that by increasing the number of subjects the new subdataset creation time is increasing.this is the first stage of creating the superdataset, so we are populating the subdatasets with already downloaded data and just moving the relevant data into the subdataset folders. Here are the commands I am using in the root of superdataset,
datalad create -d subdataset_pathdatalad ukb-init -d subdataset_path ID fieldsdatalad ukb-update -k key -d subdataset_pathdatalad saveordatalad runto run all above commandsukb-update uses a surrogate
ukbfetchand there is no communication with the ukb server at this point. This whole process is done in the university's HPC system which I mentioned the information below.I checked the time consumed for each step and the creation time is problematic part which is between 1 to 3 hours for a single subdataset right now (with 33k subdatasets). This time increased gradually as the whole dataset gets larger. My guess is, datalad tries to check some lock files in the large superdataset.
Generally, I want to know, is there a way to make the process more efficient? and what is the datalad team suggestion for such a project?
First, I raised the problem in NeuroStars which I mention here for the reference.
Some system and software info:
datalad version: 0.13.3
operating system: linux x86_64
distribution: CentOS Linux/7.7.1908/Core
filesystem: utf-8