병렬 실행 — 3초와 8초의 차이가 시스템 전체를 바꾼다

…

한줄 요약

서로 독립적인 태스크는 동시에 실행할 수 있다. 4개 검사를 하나씩 기다리지 않고 한 번에 보내는 것처럼.

본문

회진 전 검사 오더를 생각해보면

아침 회진 전에 환자의 데이터를 준비해야 한다. 필요한 것:

  • EMR에서 최근 기록 가져오기 — 2초
  • 최신 Lab 결과 가져오기 — 3초
  • 영상 판독 결과 가져오기 — 2초
  • 현재 복용 약물 목록 가져오기 — 1초

이 네 가지를 하나씩 순서대로 기다리면 합계 8초다.

실제로는 어떻게 할까? 네 개를 동시에 요청한다. 그러면 가장 오래 걸리는 것(3초)이 끝나면 전부 준비된다. 총 3초.

AI 오케스트레이션도 같은 논리다. 서로 의존성이 없는 태스크는 동시에 실행하면 된다.

담당 환자가 10명이라면 효과는 더 극적이다. 환자 한 명당 3초씩 순차 처리하면 30초. 10명을 동시에 처리하면 3초.


병렬 실행이 가능한 조건

핵심 조건은 하나다: 태스크 A의 결과가 태스크 B의 실행에 필요하지 않아야 한다.

병렬 가능:

  • 여러 환자 데이터를 각각 독립적으로 처리
  • 같은 환자의 Lab, 활력징후, 투약 기록 수집 (서로 관계없음)
  • 같은 질문을 여러 AI에게 동시에 물어보는 투표 방식

병렬 불가능:

  • 데이터 수집 → 분석 (분석은 데이터가 있어야 가능)
  • 감별진단 → 치료 계획 (치료 계획은 진단 결과가 있어야 가능)
  • AI 제안 → 의사 검토 → 처치 실행 (순서가 의미 있음)

팬아웃 / 팬인 패턴

병렬 실행의 기본 구조다.

[입력]
   ↓
[분배: Fan-out]
   ├→ [태스크 A] ─┐
   ├→ [태스크 B] ─┤
   └→ [태스크 C] ─┘
                  ↓
            [수집: Fan-in]
                  ↓
            [결과 통합]

Fan-out에서 태스크들을 동시에 시작하고, Fan-in에서 모두 완료될 때까지 기다렸다가 결과를 합친다.

의료 AI에서 전형적인 케이스: 병동 환자 10명의 요약을 동시에 생성하고, 모두 완료되면 우선순위 순으로 정렬해서 주치의에게 전달.


투표 병렬화: 속도가 아닌 신뢰도

같은 흉부 X-ray 판독을 3개의 AI에게 동시에 맡기면 무슨 이점이 있을까?

AI 1 → "오른쪽 하엽 폐렴 의심"
AI 2 → "오른쪽 하엽 폐렴 의심"
AI 3 → "정상"
      ↓
2:1 다수결 → "폐렴 의심" 채택

하나의 AI가 틀렸어도 잡아낼 수 있다. 이 방식은 속도 향상보다 신뢰도 향상이 목적이다. 중요한 임상 결정일수록, 복수의 독립적 판단으로 확인하는 것이 안전하다.


병렬 실행에서 조심해야 할 것

공유 자원 충돌

두 에이전트가 동시에 같은 데이터를 수정하려 하면 문제가 생긴다. 원칙: 각 에이전트는 자신이 담당하는 독립적인 필드만 쓰고, 다른 에이전트의 결과를 읽기만 한다.

느린 하나가 전체를 기다리게 한다

9개 태스크가 1초에 끝났는데 1개가 10초 걸리면 전체가 10초다. 각 태스크에 시간 제한을 설정하고, 기한 내 완료되지 않은 태스크는 타임아웃 처리하는 것이 좋다.

부분 실패 처리

병렬로 실행된 여러 태스크 중 하나가 실패했을 때 나머지 성공한 결과로 진행할 것인지, 전체를 실패로 처리할 것인지 사전에 정해야 한다. 의료 AI에서 “일부 데이터 누락 시 계속 진행 허용 여부”는 시스템 설계 단계에서 결정할 사항이다.

API 요청 한도

동시에 실행하는 LLM 호출이 많아지면 API 서비스의 요청 한도(Rate Limit)에 걸릴 수 있다. 동시 호출 수에 상한을 두는 것이 실용적이다.


병렬화로 얼마나 빨라지는가

회진 준비 시스템을 예로 들면:

단계소요 시간병렬 가능?
EMR 조회2초✓
Lab 조회3초✓
약물 목록 조회1초✓
가이드라인 검색2초✓
감별진단 AI4초✗ (위 4개 완료 후)
치료 계획 AI3초✗ (진단 후)
요약 생성2초✗ (계획 후)

최적 실행:

[동시] EMR + Lab + 약물 + 가이드라인 = 3초
[순차] 진단 4초 → 계획 3초 → 요약 2초
총: 3 + 4 + 3 + 2 = 12초 (vs 순차 17초)

30% 단축. 환자 수가 많아지면 효과는 더 커진다.


더 알고 싶다면

🔗 관련 글

← 오케스트레이션 시리즈 전체 보기