做 data preprocessing 和跑批量任务的时候经常会遇到下面的情况:
- 单 Python 进程根本跑不快,需要 multiprocess
- 因为可能会意外退出,所以要写一个 cache 的检查逻辑之前是不是执行过,执行过就跳过
- 每次都是复制粘贴以前类似的代码,但修修改改很容易改错
- 如果上 PyTorch 的话先要 spawn process 重新 load 模型,还得分数据,烦不胜烦
为解决上述烦恼,做了一个并行框架,项目地址: https://github.com/JeffersonQin/akasaka
代码非常简单但重在实用,已发布 PyPi 。
例子: https://github.com/JeffersonQin/akasaka/blob/master/examples/print.py
还支持 PyTorch CUDA 的 spawning, 在多卡集群上,用户可以只提供 load_model, get_dataloader, execute() 函数,即可多卡自动数据分割 + 并发执行,一步到位解决重复劳动
