Main Content

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

parfeval

백그라운드에서 함수 실행

    설명

    예제

    F = parfeval(backgroundPool,fcn,n,X1,...,Xm)은 함수 fcn을 백그라운드에서 실행하도록 예약합니다. MATLAB®이 함수 fcn을 실행하는 동안 다른 코드를 실행할 수 있습니다.

    병렬 풀에서 함수를 실행하려면 parfeval (Parallel Computing Toolbox) 항목을 참조하십시오.

    parfeval 함수는 백그라운드 워커에서 함수 fcn을 실행합니다. 워커 및 백그라운드에 대한 자세한 내용은 Background Workers 항목을 참조하십시오.

    MATLAB은 함수 fcn을 비동기식으로 [Y1,...,Yn] = fcn(X1,...,Xm)(m개의 입력값과 n개의 출력값)으로 실행합니다.

    MATLAB은 함수 fcn의 실행이 완료되기 전에 Future 객체 F를 반환합니다. fetchOutputs를 사용하여 Future 객체에서 결과값 [Y1,...,Yn]을 가져올 수 있습니다. 함수 fcn의 실행을 중지하려면 cancel 함수를 사용하십시오. Future 객체에 대한 자세한 내용은 Future 항목을 참조하십시오.

    F = parfeval(fcn,n,X1,...,Xm)은 함수 fcn을 실행하도록 예약합니다.

    MATLAB은 함수 fcn의 실행이 완료되기 전에 Future 객체 F를 반환합니다.

    이 구문을 사용하여 Parallel Computing Toolbox™와 함께 사용하도록 설계된 코드를 실행할 수 있습니다.

    • Parallel Computing Toolbox가 없으면 병렬 리소스를 사용하지 않습니다. 함수는 직렬로 실행됩니다.

    • Parallel Computing Toolbox가 있으면 parfeval 함수는 자동으로 병렬 리소스를 사용합니다.

    예제

    모두 축소

    이 예제에서는 parfevalbackgroundPool을 사용하여 백그라운드에서 함수를 실행하는 방법을 보여줍니다. 백그라운드에서 함수를 실행할 경우 동시에 다른 MATLAB® 코드를 실행할 수 있습니다.

    parfeval을 사용하여 함수 magic(3)을 실행하고 출력값 한 개를 가져옵니다. backgroundPool을 백그라운드에서 함수를 실행하기 위한 첫 번째 인수로 지정합니다. parfeval을 사용하는 경우 Future 객체를 만듭니다.

    f = parfeval(backgroundPool,@magic,1,3);

    백그라운드에서 출력값을 가져오려면 fetchOutputs를 사용합니다. magic 실행이 완료되면 출력값이 반환됩니다.

    fetchOutputs(f)
    ans = 3×3
    
         8     1     6
         3     5     7
         4     9     2
    
    

    이 예제에서는 백그라운드에서 실행 중인 MATLAB 함수를 중지하는 방법을 보여줍니다. parfeval을 사용하여 백그라운드에서 함수를 실행할 경우 MATLAB은 즉시 Future 객체를 반환합니다. 장시간 실행되는 함수로 인해 다른 함수가 백그라운드에서 실행되지 못할 수 있습니다. 함수 실행을 중지하려면 라이브 편집기 > 실행 > 중지를 선택하는 대신 cancel 함수를 사용해야 합니다.

    parfeval을 사용하여 출력값을 가져오지 않고 pause(Inf)를 실행합니다. backgroundPool을 백그라운드에서 함수를 실행하기 위한 첫 번째 인수로 지정합니다. parfeval을 사용하는 경우 Future 객체를 만듭니다.

    f = parfeval(backgroundPool,@pause,0,Inf);

    Future 객체의 상태를 확인합니다.

    f.State
    ans = 
    'running'
    

    parfeval을 실행하면 백그라운드에서 함수를 실행하도록 예약됩니다. 백그라운드 풀에 리소스가 부족하여 함수를 실행할 수 없는 경우 Future'queued' 상태가 됩니다. 백그라운드 풀에서 함수가 실행되면 Future'running' 상태가 됩니다.

    함수가 백그라운드에서 실행되는 것을 중지하려면 Future 객체를 취소합니다.

    cancel(f)
    f.State
    ans = 
    'finished'
    

    함수는 이제 'finished' 상태가 됩니다.

    입력 인수

    모두 축소

    실행할 함수로, 함수 핸들로 지정됩니다.

    예: fcn = @magic

    출력 인수의 개수로, 음이 아닌 정수 스칼라로 지정됩니다.

    n은 실행 중인 fcn(X1,...,Xm)에서 예상되는 출력 인수의 개수입니다.

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

    입력 인수로, 쉼표로 구분된 변수 또는 표현식 목록으로 지정됩니다.

    출력 인수

    모두 축소

    출력 Future로, parallel.Future 객체로 반환됩니다.

    확장 기능