-
摘要 为处理计算包含54万患者,共8个单个大小超过2G的CSV数据,应用了本地sqlite数据库来实现分批处理,减小内存压力。并应用了multiprocess模块来实现多进程处理,充分利用多核CPU来减少运算时间。 直接运算的问题 使用pandas读取大于2G的数据,需要占用远远超过2G的内存,就算主机有32G,在读取多个文件,在加上多个复杂计算的代码后,内存也很快被挤爆。而且运算需要的时间过长,不做多进程设计的情况下,16核的CPU只有可怜的一核在做运算,其他核处于围观状态。就算内存没被撑爆,运算时间也需要10个小时以上。直接不加处理运算在面对此情况下的需求时,变得一筹莫展。怎么破? 破解思路 首先要解决数据太大占用内存过高的问 …
阅读更多