[diffusion-planner]nuplan/planning/script/builders/simulation_callback_builder.py

ad_official·2025년 3월 4일

diffusion planning

목록 보기
15/19

1. build_callbacks_worker 함수

  • build_callbacks_worker 함수는 시뮬레이션 실행 중에 콜백(callback) 함수들을 병렬로 처리하기 위한 "작업자 풀(WorkerPool)"을 생성하는 역할
  • 즉, 이 함수는 설정에 따라 콜백 함수들을 병렬 처리할 수 있는 작업자 풀을 구성하여, 시뮬레이션 과정에서 콜백의 실행 효율성을 높이는 역할을 수행합니다.


1.1. 구체적인 동작

  1. 병렬 실행 여부 결정:

    • 설정(cfg)에서 지정된 worker 타입이 Sequential인지와, 콜백 병렬화(disable_callback_parallelization)가 활성화되지 않았는지 확인합니다.
    • 만약 Sequential이 아니거나 병렬화가 비활성화되어 있다면, None을 반환하여 콜백을 병렬로 실행하지 않습니다.
  2. CPU 할당 검증:

    • 설정 값인 number_of_cpus_allocated_per_simulation이 None 또는 1이 아니면, Sequential 워커와 맞지 않으므로 ValueError를 발생시킵니다.
  3. 최대 작업자 수 계산:

    • 현재 노드에서 사용 가능한 CPU 수(WorkerResources.current_node_cpu_count())에서 시뮬레이션에 할당된 CPU 수(1 또는 None)를 뺀 값과, 설정된 최대 콜백 작업자 수(cfg.max_callback_workers) 중 작은 값을 선택해 max_workers를 결정합니다.
  4. 작업자 풀 생성:

    • 계산된 max_workers를 인자로 하여 SingleMachineParallelExecutor를 생성합니다. 이 클래스는 내부적으로 ProcessPoolExecutor를 사용해 병렬로 작업을 실행합니다.
  5. 작업자 풀 반환:

    • 최종적으로 생성된 WorkerPool(콜백 전용 작업자 풀)을 반환합니다.
profile
ad_official

0개의 댓글