다중 코어에서 GNU Octave 스크립트 실행

다중 코어에서 GNU Octave 스크립트 실행

내 4코어 PC에서 GNU Octave 4.0.0을 사용하여 Monte-Carlo 시뮬레이션을 계산하고 있습니다. 시뮬레이션에서는 스크립트를 50,000회(내 문제에 따라 다름) 계산하는 데 거의 4시간이 걸리며, 이는 계산에 많은 시간이 소요됩니다. 계산 시간을 줄이기 위해 여러 코어에서 동시에 Octave를 실행할 수 있는 방법이 있는지 궁금합니다.

미리 감사드립니다.

답변1

GNU Parallel은 멀티스레딩을 수행하지 않지만~ 할 것이다다중 처리를 수행하면 충분할 수 있습니다.

seq 50000 | parallel my_MC_sim --iteration {}

기본값은 CPU 코어당 프로세스 1개이며 두 병렬 작업의 출력이 혼합되지 않도록 합니다.

이 병렬화를 Octave 스크립트에 넣을 수도 있습니다. 보다https://www.gnu.org/software/parallel/parallel_tutorial.html#Shebang

GNU Parallel은 일반적인 병렬 처리기이며 동일한 시스템 또는 SSH 액세스 권한이 있는 여러 시스템에서 작업을 병렬로 쉽게 실행할 수 있도록 해줍니다. 종종 for루프를 대체할 수 있습니다.

4개의 CPU에서 32개의 서로 다른 작업을 실행하려는 경우 병렬화하는 간단한 방법은 각 CPU에서 8개의 작업을 실행하는 것입니다.

간단한 스케줄링

대신 GNU Parallel은 프로세스가 완료되면 새 프로세스를 생성하여 CPU를 활성 상태로 유지하여 시간을 절약합니다.

GNU 병렬 스케줄링

설치

GNU Parallel이 배포용으로 패키지되어 있지 않은 경우 루트 액세스가 필요하지 않은 개인 설치를 수행할 수 있습니다. 다음과 같이 하면 10초 안에 완료할 수 있습니다.

(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash

다른 설치 옵션은 다음을 참조하세요.http://git.savannah.gnu.org/cgit/parallel.git/tree/README

더 알아보기

더 많은 예시 보기:http://www.gnu.org/software/parallel/man.html

소개 동영상 보기:https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

튜토리얼을 살펴보세요:http://www.gnu.org/software/parallel/parallel_tutorial.html

지원을 받으려면 이메일 목록에 가입하세요.https://lists.gnu.org/mailman/listinfo/parallel

관련 정보