데이터 테이블의 각 행에 대해 반복적으로 실행하고 결과를 반환하는 스크립트가 있습니다.테이블의 각 셀에 대한 작업으로 나눌 수 없으므로 각 반복은 데이터 테이블의 각 행에 대한 값에 해당하는 결과 벡터를 반환합니다.
dt=current data table();
nr=n rows(dt);
result=J(nr, 1, .)
/*
script body assigns values to result vector
*/
result;
이 작업을 수백 또는 수천 번 반복해야 하며 각 반복에는 약 0.5초가 걸립니다.반환된 모든 결과를 매트릭스로 수집한 다음 추가로 요약합니다.생성된 결과의 순서는 중요하지 않습니다.
이것이 병렬화/멀티 스레드될 수 있다면 훨씬 빠르게 실행될 것입니다.
구문이 있는 Parallel Assign() 함수를 사용하고 싶습니다.내가해야 할 일은 전역 변수를 만드는 것입니다 result_matrix = [], 이를 Parallel Assign()에서 사용되는 로컬 함수로 전달한 다음 표현식 끝에 다음을 추가합니다. 결과 벡터에 result_matrix.result_matrix 가질 것이다 NR 행 및 n_반복 열.
</CODE></PRE>
<P>이를 수행하는 방법에 대한 제안 사항.궁극적으로 해야 할 일은 각 행의 평균 결과를 계산하는 것입니다.<STRONG> result_matrix</STRONG> 데이터 테이블의 각 행에 할당된 값을 가져오려면</P>
<PRE><CODE class=" language-jsl">final_result_vector = V Mean(results_matrix`);