为CWL工作流返回给定输入大小和参数的总空间、内存、CPU的基准函数
Benchmark-4dn的Python项目详细描述
repo包含4dn-dcic(https://github.com/4dn-dcic/pipelines-cwl)使用的一些cwl工作流的基准测试脚本,该脚本返回每个给定输入大小所需的总空间、mem和cpu以及推荐的aws ec2实例类型。
基准测试脚本的示例用法
- 导入模块
fromBenchmarkimportrunasB
- MD5
app_name='md5'input_json={'input_size_in_bytes':{'input_file':20000}}B.benchmark(app_name,input_json)
{'aws': {'recommended_instance_type': 't2.xlarge', 'EBS_optimized': False, 'cost_in_usd': 0.188, 'EBS_optimization_surcharge': None, 'mem_in_gb': 16.0, 'cpu': 4}, 'total_size_in_GB': 14.855186462402344, 'total_mem_in_MB': 13142.84375, 'min_CPU': 4}
- fastqc-0-11-4-1
app_name='fastqc-0-11-4-1'input_json={'input_size_in_bytes':{'input_fastq':20000},'parameters':{'threads':2}}B.benchmark(app_name,input_json)
{'recommended_instance_type': 't2.nano', 'EBS_optimized': False, 'cost_in_usd': 0.006, 'EBS_optimization_surcharge': None, 'mem_in_gb': 0.5, 'cpu': 1}
- BWA内存
app_name='bwa-mem'input_json={'input_size_in_bytes':{'fastq1':93520000,'fastq2':97604000,'bwa_index':3364568000},'parameters':{'nThreads':4}}B.benchmark(app_name,input_json)
{'aws': {'cost_in_usd': 0.188, 'EBS_optimization_surcharge': None, 'EBS_optimized': False, 'cpu': 4, 'mem_in_gb': 16.0, 'recommended_instance_type': 't2.xlarge'}, 'total_mem_in_MB': 12834.808349609375, 'total_size_in_GB': 15.502477258443832, 'min_CPU': 4}
要在其他位置使用基准测试,请按如下所示安装它。
pip install Benchmark-4dn
或
pip install git+git://github.com/SooLee/Benchmark.git
注意:在0.5.3
中,我们有一个新函数,它接收CPU和内存,并返回一个已排序的实例字典列表。
get_instance_types(cpu=1, mem_in_gb=0.5, instances=instance_list(), top=10, rank='cost_in_usd')
每个实例字典中的键:
'cost_in_usd', 'mem_in_gb', 'cpu', 'instance_type', 'EBS_optimized', 'EBS_optimization_surcharge'