Julia에서의 Parallel for loop

자세한 내용은 여기를 참조.

Worker 개수를 정해줘야 하는데, 이건 여기를 참조. 일반적으로 물리코어 개수로 정하는데, 그게 최적이 아닐 수 있다는 얘기.

Parallel for loop에서 Array의 값들을 변경시킬 수 없으니, SharedArray를 사용해야 한다. (조금 다르지만 DArray 라는 것도 사용할 수 있다.)

for loop을 사용하기 위해서는 다음과 같은 방식으로 사용하면 된다.

@sync 는 병렬계산이 끝날 때까지 기다리게 해주는 것이라 빼먹으면 안 된다.

저렇게 만든 SharedArray를 일반적인 Array로 변환하고 싶으면 convert 하면 된다. 예를 들어,

이런 방식.

 

vector and array(matrix) in Julia

Matlab에서는 벡터와 n-dimensional array를 별로 구분할 필요가 없어서 사용이 간편한데, Julia에서는 간혹 문제가 되는 경우가 있다. ODE solver를 이용하거나 할 때에 시작값이나 함수의 리턴값을 벡터로 주어야 하는데 2-dim array로 줄 경우 error가 발생한다.

계속 읽기