主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。

parpool

클러스터에서병렬풀만들기

설명

예제

parpool은디폴트클러스터프로파일을사용하여워커의병렬풀을시작합니다。디폴트기본설정에서matlab®은물리적CPU코어당하나의워커를사용해로컬컴퓨터에서풀을시작하며,이때워커의최대개수는기본설정의워커개수로한정됩니다。병렬기본설정에대한자세한내용은병렬기본설정지정하기항목을참조하십시오。

일반적으로풀크기는병렬기본설정및디폴트프로파일로지정됩니다。parpool은병렬언어기능을실행할수있도록[1, preferredNumWorkers]범위내에서NumWorkers개의워커를갖는풀을디폴트클러스터에만듭니다。preferredNumWorkers는병렬기본설정에정의된값입니다。풀크기에향을미칠수있는모든은풀크기및클러스터선택항목을참조하십시오。

parpool을사용하면워커로구성된풀에대한특수작업을만들고MATLAB클라이언트를병렬풀에연결하여MATLAB의병렬언어기능이모두가능하게됩니다。병렬언어기능에는parforparfevalparfevalOnAllspmd分布式가있습니다。가능한경우워커의작업폴더는MATLAB클라이언트세션의폴더와일치하도록설정됩니다。

예제

parpool (poolsize는지정된개수의워커로구성된풀을만들고반환합니다。poolsize는양의정수이거나범위를지정하는정수소를2개가진벡터일수있습니다。poolsize가범위경우,결과풀의크기는청한범위내에서가능한큰값으로지정됩니다。

poolsize를지정하면기본설정또는프로파일에서지정된워커개수가재정의되고,워커를사용할수있을때까지기다려야하는경우가있더라도정확하게지정된개수의워커로구성된풀이시작됩니다。대부분의클러스터에는시작할수있는최대워커개수가있습니다。프로파일이matlab작업스케줄러클러스터를지정하는경우,parpool은이MATLAB작업스케줄러에서이미실행중이거나사용가능한워커중에서parpool이사용할워커를예약합니다。프로파일이로컬또는타사스케줄러를지정하는경우,parpool은스케줄러가풀에있는워커를시작하도록지시합니다。

예제

parpool (资源또는parpool (资源poolsize资源로지정된리소스에서워커풀을시작합니다。

예제

parpool (___名称,值는풀을시작할때특정속성에대해지정된값을적용합니다。

예제

poolobj= parpool (___은클러스터의풀을나타내는平行的。池객체를클라이언트작업공간에반환합니다。풀객체를사용하여프로그래밍방식으로풀을삭제하거나속성에액세스할수있습니다。删除(池)을사용하여병렬풀을종료합니다。

예제

모두 축소

워커개수가정의된디폴트프로파일을사용하여병렬풀을시작합니다。디폴트기본설정에서디폴트풀은로컬컴퓨터에있습니다。

parpool

로컬컴퓨터에서는여러유형의병렬환경에서풀을만들수있습니다。

  • 프로세스워커로구성된병렬풀을시작합니다。

    parpool (“本地”
  • 스레드워커로구성된병렬풀을시작합니다。

    parpool (“线程”

병렬환경에대한자세한내용은选择基于线程的环境和基于进程的环境항목을참조하십시오。

myProf라는프로파일을사용하여16개의워커로구성된병렬풀을시작합니다。

parpool (“myProf”, 16)

디폴트프로파일로식별되는클러스터를나타내는객체를만들고객이集群체를사용하여병렬풀을시작합니다。풀크기는디폴트프로파일로결정됩니다。

C = parcluster (C)

디폴트프로파일을사용하여병렬풀을시작하고두개의코드파일을워커로전달합니다。

parpool (“AttachedFiles”,{“mod1.m”“mod2.m”})

여러개의GPU에액세스할수있는경우에는병렬풀을사용하여여러개의GPU에서병렬로계산을수행할수있습니다。

Matlab에서사용가능한gpu개수를확하려면gpuDeviceCount함수를사용하십시오。

availableGPUs = gpuDeviceCount(“可用”
availableGPUs = 3

사용가능한gpu와같은수의워커를사용하여병렬풀을시작합니다。Matlab은최적의성능을위해기본적으로각워커에다른gpu를할당합니다。

parpool (“本地”, availableGPUs);
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:3)。

각워커가사용하는gpu를식별하려면spmd블록내에서gpuDevice를호출하십시오。spmd블록은모든워커에서gpuDevice를실행합니다。

spmdgpuDevice结束

parfor또는parfeval과같은병렬언어기능을사용하여계산을병렬풀의워커로분산합니다。계산에gpuArray지원함수를사용하는경우이러한함수는워커의gpu에서실행됩니다。자세한내용은Gpu에서matlab함수실행하기항목을참조하십시오。예제는在多gpu上运行MATLAB函数항목을참조하십시오。

계산이완료되면병렬풀을종료합니다。gcp함수를사용하여현재병렬풀을가져올수있습니다。

删除(gcp (“nocreate”));

다른gpu를선택하려면gpuDevice를사용하여gpu장치덱스를통해각워커에서특정gpu를선택할수있습니다。gpuDeviceCount함수를사용하여시스템에있는각gpu장치의덱스를가져올수있습니다。

시스템에3개의gpu가있지만2개만계산에사용하려한다고가정하겠습니다。장치의덱스를가져옵니다。

[availableGPUs,gpuIndx] = gpuDeviceCount(“可用”
availableGPUs = 3
gpuIndx =1×31 2 3

사용할장치의덱스를정의합니다。

useGPUs = [1 3];

병렬풀을시작합니다。spmd블록과gpuDevice를사용하여장치덱스를통해각워커를사용하려는gpu중하나와연결합니다。labindex함수는각워커의덱스를식별합니다。

parpool (“本地”元素个数(useGPUs));
使用“本地”配置文件启动并行池(parpool)…连接到并行池(工人数:2)。
spmdgpuDevice (useGPUs (labindex));结束

최상의성능을구현하려면각워커에다른gpu를할당하는것이좋습니다。

계산이완료되면병렬풀을종료합니다。

删除(gcp (“nocreate”));

디폴트프로파일을사용하여병렬풀을만들고나중에풀을삭제합니다。

Poolobj = parpool;删除(poolobj)

현재병렬풀의워커개수를구합니다。

Poolobj = gcp(“nocreate”);%如果没有存储池,则不创建新的存储池。如果Isempty (poolobj) poolsize = 0;其他的Poolsize = poolobj。NumWorkers结束

입력marketing수

모두 축소

병렬풀의크기로,양의정수로지정되거나,범위를지정하는정수요소를2개가진벡터로지정됩니다。poolsize가범위경우,결과풀의크기는청한범위내에서가능한큰값으로지정됩니다。병렬기본설정또는병렬프로파일에서기본워커개수를설정할수있습니다。

예:parpool(“当地”,2)

데이터형:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

풀을시작할리소스로,“本地”“线程”,클러스터프로파일이름또는集群객체로지정됩니다。

예:parpool(当地的)

예:parpool(“线程”)

예:parpool (myClusterProfile, 16)

예:C = parcluster;parpool (c)

데이터형:字符|字符串|平行的。集群

이름-값通讯录수

선택적으로수쌍을Name1 = Value1,…,以=家으로지정합니다。여기서的名字은수이름이고价值는대응값입니다。이름-값수는다른수뒤에나타나야하지만쌍의순서는중하지않습니다。

R2021a이전버전에서는쉼` ` `를사용하여각이름과값을구분하고的名字을따옴@ @로묶습니다。

예:AttachedFiles, {' myFun.m '}

풀에연결할파일로,문자형벡터,형的字符串,字符串형배열또는문자형벡터로구성된셀형배열로지정됩니다。

이수쌍을사용하여parpool은병렬풀을시작하고식별된파일을풀의워커로전달합니다。여기지정된파일은적용가능한병렬프로파일에지정된AttachedFiles속성에추가되어전체연결파일목록을구성합니다。“AttachedFiles”속성이름은대/소문자를구분하며다음과같이시되어야합니다。

예:{“myFun.m”、“myFun2.m”}

데이터형:字符|细胞

클라이언트경로에서사용자가추가한항목을시작시각워커의경로에추가할지여부를지정하는플래그로,논리값으로지정됩니다。

데이터형:逻辑

클라이언트세션에서워커로복사할환경변수의이름으로,문자형벡터,형的字符串,字符串형배열또는문자형벡터로구성된셀형배열로지정됩니다。여기에지정된이름은적용가능한병렬프로파일에지정된“EnvironmentVariables”속성에추가되어전체환경변수목록을구성합니다。목록에있지만설정되지않은변수는워커로복사되지않습니다。이러한환경변수는병렬풀작업동워커에설정됩니다。

데이터형:字符|细胞

풀에서spmd지원을활성화할지여부를지정하는플래그로,논리값으로지정됩니다。로컬클러스터또는MATLAB작업스케줄러클러스터에대한지원만비활성화할수있습니다。parfor반복에워커간통신이발생하지는않습니다。따라서“SpmdEnabled”경우루프실행중에하나이상의워커가중단되더라도parfor루프는계속됩니다。

데이터형:逻辑

풀이유휴상태인경우종료되기까지의시간(단위:분)으로,0보다큰정수로지정됩니다。풀은워커에서코드를실행하지않을경우유휴상태로간주됩니다。기본적으로“IdleTimeout”은병렬기본설정의값과동일합니다。병렬기본설정에대한자세한내용은병렬기본설정지정하기항목을참조하십시오。

예:pool = parpool('IdleTimeout',120)

출력marketing수

모두 축소

클라이언트의병렬풀에대한액세스로,平行的。池객체로반환됩니다。

  • 데스크탑의왼쪽아래코너에있는풀상태표시기는풀에연결된클라이언트세션과풀상태를보여줍니다。아이콘을클릭하면지원되는풀동작에대한메뉴가@ @시됩니다。

    풀이실행중marketing경우:실행중marketing풀이없는경우:

  • 필로할때병렬풀을자동으로만들도록병렬기본설정을설정한경우,parpool명령을명시적으로호출할필가없습니다。풀설정에드는오버헤드시간이발생하는시점을조절하려면사용자가명시적으로풀을만들면됩니다。이렇게하면이후병렬언어구문을처리해야할때미리준비해놓은풀을바로사용할수있습니다。

  • 删除(poolobj)는병렬풀을종료합니다。병렬풀이없는경우,병렬기본설정에서병렬풀이자동으로시작되도록설정되지않았다면spmdparfor는클라이언트에서단일스레드로실행됩니다。

  • MATLAB편집기를사용하여병렬풀에연결된클라이언트의파일을업데이트하는경우,이업데이트는자동으로풀의워커로전파됩니다。(金宝app仿真软件®모델파일에는이러한자동업데이트가적용되지않습니다。업데이트된모델파일을워커로전파하려면updateAttachedFiles함수를사용하십시오。)

  • 가능한경우워커의처음작업폴더는MATLAB클라이언트세션의폴더와일치하도록설정됩니다。그런후클라이언트명령창에입력된다음명령도풀의모든워커에서실행됩니다。

    이동작을통해모든워커의작업폴더와명령검색경로를설정할수있으므로parfor루프와같은후속풀동작이적절한상황에서실행됩니다。

    窗户®운체제를사용하는클라이언트에서cd또는目录를사용하여폴더를변경하거나경로를추가하면,워커로전송되는값은폴더에대한UNC경로입니다(가능한경우)。Linux®운체제를사용하는클라이언트의경우에는절대폴더위치가전송됩니다。

    이러한명령이클라이언트에서작동하지않는경우워커에서도실행되지않습니다。예를들어,目录실행시클라이언트가액세스할수없는폴더를지정하는경우目录명령은워커에서실행되지않습니다。그러나클라이언트에서작업폴더를설정할수있지만어떤워커에서도지정된대로설정할수없는경우,클라이언트명령창에오류메시지가반환되지않습니다。

    클라이언트가워커와동일한플랫폼이아니거나,클라이언트에대한로컬폴더또는클라이언트에서매핑된폴더를워커가동일한방식으로사용할수없거나,폴더가비공유파일시스템에있는등의혼합플랫폼환경에서는이러한미세한동작차이에유의해야합니다。예를들어,MATLAB클라이언트가微软®Windows운영체제에서실행되고MATLAB워커가모두Linux운영체제에서실행되는경우,目录에대한수가클라이언트와워커에서동일하게작동할수없습니다。이경우함수pctRunOnAll을사용하여모든워커에서명령이실행되도록할수있습니다。

    클라이언트와워커간의또다른차이는matlabroot폴더의일부目录수가워커에대해설정되지않은점입니다。Matlab설치기반이워커의경로에이미포함되어있다고가정합니다。풀의워커와관련된目录규칙은다음과같습니다。

    • matlabroot폴더의하위폴더는워커로전송되지않습니다。

    • matlabroot폴더가처음나오기전에@ @시되는폴더는워커의경로맨위에추가됩니다。

    • matlabroot폴더가처음나온후에@ @시되는폴더는워커의경로에서matlabroot폴더그룹뒤에추가됩니다。

    예를들어,클라이언트에대한matlabrootC: \应用matlab \ \이라고가정하겠습니다。열려있는병렬풀에서다음을실행하여클라이언트와모든워커에서경로를설정합니다。

    目录“P1”“P2”“C: \ matlab应用程序\ \ T3”“C: \ matlab应用程序\ \ T4”“P5”“C: \ matlab应用程序\ \ T6”“P7”“P8”);

    T3T4T6matlabroot의하위폴더이므로워커의경로에설정되지않습니다。따라서워커에서이명령의향을받는경로부분은다음과같습니다。

    P1 P2  p5 p7 p8
  • 麦金塔电脑또는Linux를사용중이고대규모병렬풀을만드는동문제가발생하는경우Macintosh和Linux的推荐系统限制항목을참조하십시오。

버전 내역

R2013b에개발됨