나는 실행할 필요가있는 간단한 시뮬레이션을 많이 가지고 있으며, 동시에 수행 할 수 있는지 궁금합니다. 상황을 설명해 드리겠습니다 : 저는 100 개의 질병에 대해 1000 개의 유행병을 갖고 있으며, 20 개의 연령군에 대해 해당 질병에 대해 해당 장애가있는 무게를 1,000 개 (0-1 등급으로 질병이 얼마나 나쁜지) 보여줍니다. 내가해야 할 시뮬레이션은 얼마나 많은 사람들이 질병의 다른 조합을 가질 것인지를 결정하는 것입니다. 여기에 입력 데이터가 10 개 질병과 같을 것이다 것입니다 :파이썬에서의 동시 시뮬레이션
이from __future__ import division
import numpy as np
disease_number = np.array([1,2,3,4]*10)
age = np.array([5, 10, 15, 20]*10)
prevalence = np.random.uniform(0, 1, (40, 1000))
disability_weight = np.random.uniform(0,1,(40, 1000))
5 세에 대한이 같은 무언가를 볼 것 하나 무승부의 시뮬레이션, 그리기 1.
다음prev_draw1 = prevalence[age==5, 1]
disability_draw1 = disability_weight[age==5, 1]
simulation = np.random.binomial(1, prev_draw1, (100000, prev_draw1.shape[0])
를 계산하기 여러 질병의 합병증을 고려할 때 각 질병에 기인하는 장애 무게는 다음과 같습니다. 분모를 현재 장애가중치의 합으로 설정하고 주어진 질병의 장애 가중치를 분자로 사용하십시오. 질병 1 :
denom = np.sum(disability_draw1**simulaiton)
denom[denom==1]=0
numerator = disability_draw1*simulation[:, 0]
adjusted_dw = np.sum(numerator/denom)
각 질병에 대해이 조정 된 dw 계산이 필요합니다. 이 1000 가지 시뮬레이션을 동시에 수행 할 수있는 방법이 있습니까? 모든 도움을 주시면 감사하겠습니다. Python을 처음 접했을 때 더 많은 설명이 도움이됩니다.
정말 감사합니다. 불행히도 20 개의 지역, 30 개의 연령대, 2 개의 남녀에 대해 동일한 시뮬레이션을 수행해야합니다. 이것이 클러스터 시스템에서 전체 프로세스를 병렬화하는 방법입니다. – mike
클러스터에서이 작업을 실행해야하는 경우 Beanstlkd와 같은 대기열 서버를 사용할 수 있습니다 (linux/unix의 경우). simulations_to_run에서 작업을 가져 오는 대신 대기열 서버에서 가져옵니다. 일단 작업이 실행되면 beanstalkd 서버의 다른 튜브에 넣을 수 있습니다. 이 코드는 대기열 서버를 사용하기 쉽게 적응해야합니다. 모든 서버에서이 스크립트를 실행해야합니다. – Martin