Skip to content
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

Scripts for running all preprocessing steps #21

Closed
mengcz13 opened this issue Jun 8, 2021 · 13 comments
Closed

Scripts for running all preprocessing steps #21

mengcz13 opened this issue Jun 8, 2021 · 13 comments

Comments

@mengcz13
Copy link
Collaborator

mengcz13 commented Jun 8, 2021

Hi all,

We have updated the script for running all preprocessing steps based on the constructed MIMIC-III dataset. We have also optimized the speed via adding necessary indices to the database. The script is in replacement of previous jupyter notebooks for preprocessing, which are now under the branch dep_notebooks.

To generate all input files used for models, run

python -m preprocessing.preprocess --cachedir data --num_workers <number of processes>

The preprocessing should finish within 1 day with --num_workers 4.

All input files are stored under data/ and require 36GB disk space.

@jrdeng93
Copy link

jrdeng93 commented Jun 9, 2021

Hi I got a " Segmentation fault" error for "python -m preprocessing.preprocess --cachedir data --num_workers 4"

@mengcz13
Copy link
Collaborator Author

mengcz13 commented Jun 9, 2021

Hi I got a " Segmentation fault" error for "python -m preprocessing.preprocess --cachedir data --num_workers 4"

First please make sure that you run the script in a separate conda environment with the packages in https://github.com/USC-Melady/Benchmarking_DL_MIMICIII/blob/master/install.sh installed.

Could you provide the full log/output from the script?

@jrdeng93
Copy link

jrdeng93 commented Jun 9, 2021

Hi I got a " Segmentation fault" error for "python -m preprocessing.preprocess --cachedir data --num_workers 4"

First please make sure that you run the script in a separate conda environment with the packages in https://github.com/USC-Melady/Benchmarking_DL_MIMICIII/blob/master/install.sh installed.

Could you provide the full log/output from the script?

Hi Chuizheng, I do follow your instruction and the log is following:
(base) jid20004@iteb361-1:~/jrdeng_code/Benchmarking_DL_MIMICIII$ bash install.sh
Collecting package metadata (repodata.json): done
Solving environment: |
The environment is inconsistent, please check the package plan carefully
The following packages are causing the inconsistency:

  • defaults/linux-64::anaconda==5.2.0=py36_3
  • defaults/linux-64::pango==1.41.0=hd475d92_0
  • defaults/linux-64::harfbuzz==1.7.6=h5f0a787_1
  • defaults/linux-64::cairo==1.14.12=h7636065_2
    done

Package Plan

environment location: /home/jid20004/anaconda3

added / updated specs:
- jupyter
- jupyterlab
- matplotlib
- numpy
- pandas
- psycopg2
- scikit-learn
- scipy
- tqdm

The following packages will be downloaded:

package                    |            build
---------------------------|-----------------
_anaconda_depends-2019.03  |           py36_0           5 KB
anaconda-custom            |           py36_1           3 KB
atomicwrites-1.4.0         |             py_0          11 KB
backports.os-0.1.1         |py36h06a4308_1000          16 KB
cairo-1.14.12              |       h8948797_3         1.3 MB
defusedxml-0.7.1           |     pyhd3eb1b0_0          24 KB
fribidi-1.0.10             |       h7b6447c_0         115 KB
harfbuzz-1.8.8             |       hffaf4a1_0         863 KB
jeepney-0.6.0              |     pyhd3eb1b0_0          32 KB
keyring-23.0.1             |   py36h06a4308_0          51 KB
pango-1.42.3               |       h8589676_0         522 KB
secretstorage-3.3.1        |   py36h06a4308_0          24 KB
soupsieve-2.2.1            |     pyhd3eb1b0_0          30 KB
spyder-kernels-1.4.0       |           py36_0          65 KB
typed-ast-1.4.2            |   py36h27cfd23_1         210 KB
wurlitzer-2.1.0            |   py36h06a4308_0          13 KB
------------------------------------------------------------
                                       Total:         3.2 MB

The following NEW packages will be INSTALLED:

_anaconda_depends pkgs/main/linux-64::_anaconda_depends-2019.03-py36_0
atomicwrites pkgs/main/noarch::atomicwrites-1.4.0-py_0
backports.os pkgs/main/linux-64::backports.os-0.1.1-py36h06a4308_1000
defusedxml pkgs/main/noarch::defusedxml-0.7.1-pyhd3eb1b0_0
fribidi pkgs/main/linux-64::fribidi-1.0.10-h7b6447c_0
jeepney pkgs/main/noarch::jeepney-0.6.0-pyhd3eb1b0_0
keyring pkgs/main/linux-64::keyring-23.0.1-py36h06a4308_0
secretstorage pkgs/main/linux-64::secretstorage-3.3.1-py36h06a4308_0
soupsieve pkgs/main/noarch::soupsieve-2.2.1-pyhd3eb1b0_0
spyder-kernels pkgs/main/linux-64::spyder-kernels-1.4.0-py36_0
typed-ast pkgs/main/linux-64::typed-ast-1.4.2-py36h27cfd23_1
wurlitzer pkgs/main/linux-64::wurlitzer-2.1.0-py36h06a4308_0

The following packages will be UPDATED:

cairo 1.14.12-h7636065_2 --> 1.14.12-h8948797_3
harfbuzz 1.7.6-h5f0a787_1 --> 1.8.8-hffaf4a1_0
pango 1.41.0-hd475d92_0 --> 1.42.3-h8589676_0

The following packages will be DOWNGRADED:

anaconda 5.2.0-py36_3 --> custom-py36_1

Proceed ([y]/n)? y

Downloading and Extracting Packages
fribidi-1.0.10 | 115 KB | ###################################################################### | 100%
spyder-kernels-1.4.0 | 65 KB | ###################################################################### | 100%
wurlitzer-2.1.0 | 13 KB | ###################################################################### | 100%
harfbuzz-1.8.8 | 863 KB | ###################################################################### | 100%
jeepney-0.6.0 | 32 KB | ###################################################################### | 100%
soupsieve-2.2.1 | 30 KB | ###################################################################### | 100%
defusedxml-0.7.1 | 24 KB | ###################################################################### | 100%
cairo-1.14.12 | 1.3 MB | ###################################################################### | 100%
keyring-23.0.1 | 51 KB | ###################################################################### | 100%
typed-ast-1.4.2 | 210 KB | ###################################################################### | 100%
backports.os-0.1.1 | 16 KB | ###################################################################### | 100%
atomicwrites-1.4.0 | 11 KB | ###################################################################### | 100%
anaconda-custom | 3 KB | ###################################################################### | 100%
_anaconda_depends-20 | 5 KB | ###################################################################### | 100%
pango-1.42.3 | 522 KB | ###################################################################### | 100%
secretstorage-3.3.1 | 24 KB | ###################################################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(base) jid20004@iteb361-1:~/jrdeng_code/Benchmarking_DL_MIMICIII$ python -m preprocessing.preprocess --cachedir data --num_workers 4
Segmentation fault

@mengcz13
Copy link
Collaborator Author

@jrdeng93 Could you do this in a separate conda env? I am not sure if there is any conflicting package in your base env.

conda create -n mimic4 "python<3.8"
conda activate mimic4
bash install.sh

Also, did you notice any high memory consumption when running the script? If that is your case, you can try increasing the size of your swap memory.

There could possibly be other reasons related to platform/hardware/software installed, and you may want to use some debugging tools to find out the reason.

@liguang-ops
Copy link

@mengcz13 hi,i ran the command 'python -m preprocessing.preprocess --cachedir data --num_workers 8' twenty-five days ago,
but the scripts logs shows that i just finished 37%. i want to ask how much ram do you use on the computer which you ‘finish within 1 day with --num_workers 4’. than i can figure out the reason of running slowly. besides , my computer's ram is 32GB, is it too small?

@mengcz13
Copy link
Collaborator Author

@mengcz13 hi,i ran the command 'python -m preprocessing.preprocess --cachedir data --num_workers 8' twenty-five days ago,
but the scripts logs shows that i just finished 37%. i want to ask how much ram do you use on the computer which you ‘finish within 1 day with --num_workers 4’. than i can figure out the reason of running slowly. besides , my computer's ram is 32GB, is it too small?

We have the database installed on one server with 64GB RAM, but the RAM usage won't exceed 32GB. We run the processing script on another server with 256 GB RAM but I haven't monitored the peak usage.

In which step do you get stuck? What is the peak RAM usage?

@liguang-ops
Copy link

@mengcz13 thanks for your reply. i can not figure out the step which I get stuck. Here are the log.
`python -m preprocessing.preprocess --cachedir data --num_workers 8
0_createAdmissionList: Select all admissions from TABLE ICUSTAYS and TABLE TRANSFERS. Also collect admissions which are the first admissions of their patients.
#admissions = 58976
#first admissions: 46520
Finished 0_createAdmissionList!

1_getItemIdList: Select all itemids from TABLE INPUTEVENTS, OUTPUTEVENTS, CHARTEVENTS, LABEVENTS, MICROBIOLOGYEVENTS, PRESCRIPTIONS.
len(input_itemid) = 3216
len(output_itemid) = 1155
len(chart_itemid) = 6463
len(lab_itemid) = 726
len(microbio_itemid) = 9154
len(prescript_itemid) = 3268
saved!
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:06<00:00, 14.29it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:08<00:00, 10.83it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 90/90 [00:10<00:00, 8.66it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:12<00:00, 7.48it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:15<00:00, 5.96it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 90/90 [00:16<00:00, 5.53it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:16<00:00, 5.44it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 91/91 [00:19<00:00, 4.57it/s]
/home/d5820/anaconda3/envs/mimic/lib/python3.7/site-packages/numpy/core/_asarray.py:83: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1145/1145 [01:02<00:00, 18.29it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:03<00:00, 18.00it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:03<00:00, 17.92it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:04<00:00, 17.74it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:04<00:00, 17.65it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1145/1145 [01:04<00:00, 17.64it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:04<00:00, 17.62it/s]
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 1144/1144 [01:05<00:00, 17.56it/s]
/home/d5820/anaconda3/envs/mimic/lib/python3.7/site-packages/numpy/core/_asarray.py:136: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order, subok=True)
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 408/408 [02:23<00:00, 2.85it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 408/408 [02:30<00:00, 2.71it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 408/408 [02:35<00:00, 2.63it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 409/409 [02:51<00:00, 2.39it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 408/408 [02:54<00:00, 2.34it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 409/409 [03:02<00:00, 2.24it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 409/409 [03:07<00:00, 2.18it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 409/409 [03:15<00:00, 2.10it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:12<00:00, 31.86it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:13<00:00, 30.68it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:13<00:00, 29.22it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:13<00:00, 28.84it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:17<00:00, 22.44it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:18<00:00, 22.10it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:18<00:00, 21.32it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 402/402 [00:19<00:00, 20.48it/s]
input finished
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 144/144 [00:02<00:00, 70.02it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 145/145 [00:02<00:00, 64.03it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 145/145 [00:02<00:00, 61.11it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 144/144 [00:02<00:00, 57.19it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 144/144 [00:02<00:00, 56.80it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 144/144 [00:02<00:00, 55.50it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 145/145 [00:02<00:00, 54.52it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 144/144 [00:03<00:00, 40.47it/s]
output finished
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [10:50<00:00, 1.24it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [10:56<00:00, 1.23it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [11:11<00:00, 1.20it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [11:38<00:00, 1.16it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [11:57<00:00, 1.13it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [12:29<00:00, 1.08it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [12:35<00:00, 1.07it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 807/807 [13:05<00:00, 1.03it/s]
chart finished
Finished 1_getItemIdList!

100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [11:17<00:00, 1.19it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [11:48<00:00, 1.14it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [12:13<00:00, 1.10it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [12:38<00:00, 1.07it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [12:54<00:00, 1.04it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [13:03<00:00, 1.03it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 807/807 [13:24<00:00, 1.00it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 808/808 [14:13<00:00, 1.06s/it]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 955/955 [03:01<00:00, 5.26it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 955/955 [03:41<00:00, 4.32it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 954/954 [03:58<00:00, 4.00it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 955/955 [04:02<00:00, 3.94it/s]
/home/d5820/anaconda3/envs/mimic/lib/python3.7/site-packages/numpy/core/_asarray.py:136: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray
return array(a, dtype, copy=False, order=order, subok=True)
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3406/3406 [11:20<00:00, 5.00it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 224/224 [00:43<00:00, 5.15it/s]
38%|████████████████████████████████████████████████████▌ | 2767/7372 [596:19:02<1021:40:26, 798.70s/it]a sad news, I accidentally pressed ctrl + c to copy the log, the script stopped on 38%. so the 'top' show nothing.top - 09:08:08 up 27 days, 11:43, 1 user, load average: 2.94, 3.67, 5.06
任务: 456 total, 2 running, 348 sleeping, 0 stopped, 0 zombie
%Cpu(s): 7.6 us, 4.9 sy, 0.0 ni, 87.1 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st
KiB Mem : 32564380 total, 659232 free, 2581316 used, 29323832 buff/cache
KiB Swap: 13421772+total, 47694080 free, 86523648 used. 29244436 avail Mem

process USER PR NI VIRT RES SHR � %CPU %MEM TIME+ COMMAND
5921 d5820 20 0 79.328g 168152 1644 R 122.5 0.5 31916:20 python
3508 d5820 20 0 32.715g 118320 66824 S 56.0 0.4 5:53.66 chrome
3679 d5820 20 0 41.006g 250900 103092 S 9.3 0.8 1:33.48 chrome
1924 root 20 0 1990840 51844 41404 S 6.3 0.2 61:07.02 Xorg
2129 d5820 20 0 6543760 122692 34312 S 6.0 0.4 56:25.63 gnome-shell
5399 d5820 20 0 744292 42960 32520 S 2.3 0.1 0:01.54 gnome-term+
6168 fengjie 20 0 108928 8472 7232 S 2.0 0.0 0:00.07 curl
22682 fengjie 20 0 13.870g 149536 77916 S 1.0 0.5 5:31.39 ethminer
6027 d5820 20 0 46252 4404 3392 R 0.7 0.0 0:00.99 top
1 root 20 0 226004 6408 4220 S 0.3 0.0 1:29.63 systemd
11 root 20 0 0 0 0 I 0.3 0.0 33:14.37 rcu_sched
29 root rt 0 0 0 0 S 0.3 0.0 23:11.13 migration/3
83 root rt 0 0 0 0 S 0.3 0.0 39:37.68 migration/+
309 root -2 0 0 0 0 S 0.3 0.0 6:16.67 gfx
1661 gdm 20 0 670480 12172 3936 S 0.3 0.0 52:15.48 gsd-color
2089 d5820 20 0 220712 1772 1592 S 0.3 0.0 0:06.95 at-spi2-re+
2362 d5820 20 0 596544 13260 5132 S 0.3 0.0 49:28.59 gsd-color `

@liguang-ops
Copy link

@mengcz13 GOD! In fact, i run the script in the vscode terminal, as I said above, I press ctrl + C in this terminal , it threw
a KeyboardInterrupt error. I thought the script stopped halfway at first, but I used top command, I found that it is still executed. Here are my top output.
image
what can I do?

@mengcz13
Copy link
Collaborator Author

Seems it is because the RAM is used up. Maybe the database program or something else consumes too much RAM?

A workaround is that I can send the processed data (truncated and aggregated) for training these models.

@liguang-ops
Copy link

@mengcz13 that's great if you can send the data to me. How can I contact you?my email address is ligaungops@gamil.com. Thanks a lot.

@mengcz13
Copy link
Collaborator Author

@mengcz13 that's great if you can send the data to me. How can I contact you?my email address is ligaungops@gamil.com. Thanks a lot.

I've sent an email sharing the processed files.

@liguang-ops
Copy link

liguang-ops commented Jul 15, 2021

@mengcz13 sorry,the address above is wrong.! here are my email liguangops@gamil.com, Please! thanks a lot.

@sahilshr
Copy link

sahilshr commented Apr 4, 2024

@liguang-ops @mengcz13
can you please send data to me , im having error while processing this command on my terminal python -m preprocessing.preprocess --cachedir data --num_workers please help me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants