Main Content

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

send

데이터 대기열을 사용하여 워커에서 클라이언트로 데이터 보내기

설명

예제

send(queue, data)는 값 data가 포함된 메시지 또는 데이터를 queue로 지정된 parallel.pool.DataQueue로 보냅니다. afterEach로 지정된 함수에 각각의 보류 중 메시지를 전달하려면 afterEach를 호출합니다.

예제

send(pollablequeue, data)는 값 data가 포함된 메시지 또는 데이터를 pollablequeue로 지정된 parallel.pool.PollableDataQueue로 보냅니다. poll(pollablequeue)를 사용하여 결과를 가져온 다음 data를 응답으로 반환합니다.

서로 다른 워커에서 메시지나 데이터를 전송하고 가져오려면 폴링 가능한 데이터 대기열을 sendpoll 함수와 함께 사용하십시오.

예제

모두 축소

DataQueue를 생성하고 afterEach를 호출합니다.

q = parallel.pool.DataQueue;
afterEach(q, @disp);
parfor 루프를 시작하고 메시지를 보냅니다. 보류 중인 메시지가 afterEach 함수로 전달되는데 이 예제에서는 @disp로 전달됩니다.

parfor i = 1:3
    send(q, i); 
end;
     1

     2

     3

DataQueue를 사용하여 데이터를 수신 대기하는 방법에 대한 자세한 내용은 afterEach 항목을 참조하십시오.

PollableDataQueue를 생성합니다.

p = parallel.pool.PollableDataQueue;
parfor 루프를 시작하고 메시지를 보냅니다. 예를 들어 값 1이 포함된 데이터를 보냅니다.
parfor i = 1
    send(p, i); 
end
결과를 폴링합니다.

poll(p)
     1

PollableDataQueue를 사용하여 데이터를 가져오는 방법에 대한 자세한 내용은 poll 항목을 참조하십시오.

이 예제에서는 parfor를 사용하는 대기 표시줄을 만드는 함수를 보여줍니다. DataQueue를 만들고 afterEach를 사용하여 대기열이 데이터를 수신할 때마다 실행할 함수를 지정합니다. 이 예제에서는 대기 표시줄을 업데이트하는 부 함수를 호출합니다.

parfor 루프를 만들어 MATLAB®에서 계산량이 많은 작업을 수행합니다. send를 사용하여 parfor 루프의 각 반복마다 더미 데이터를 보냅니다. 대기열이 데이터를 수신하면 afterEach가 클라이언트 MATLAB에서 nUpdateWaitbar를 호출하며, 사용자는 대기 표시줄의 진행률을 확인할 수 있습니다.

function a = parforWaitbar

D = parallel.pool.DataQueue;
h = waitbar(0, 'Please wait ...');
afterEach(D, @nUpdateWaitbar);

N = 200;
p = 1;

parfor i = 1:N
    a(i) = max(abs(eig(rand(400))));
    send(D, i);
end

    function nUpdateWaitbar(~)
        waitbar(p/N, h);
        p = p + 1;
    end
end

Status bar indicating roughly one third completion.

입력 인수

모두 축소

데이터 대기열로, parallel.pool.DataQueue 객체로 지정됩니다.

예: q = parallel.pool.DataQueue;

워커에서 데이터 대기열로 보낼 메시지 또는 데이터로, 직렬화할 수 있는 데이터형으로 지정됩니다.

예: send(queue, data);

폴링 가능한 데이터 대기열로, parallel.pool.PollableDataQueue 객체로 지정됩니다.

예: p = parallel.pool.PollableDataQueue;

버전 내역

R2017a에 개발됨