Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagec#
//병렬처리를 위한 멀티 코어 프로그래밍 예 

Thread[] threads = new Thread[NumOfThread];

Process currentProcess = Process.GetCurrentProcess();
foreach (ProcessThread processThread in currentProcess.Threads) 
{ 
processThread.ProcessorAffinity = currentProcess.ProcessorAffinity;
}


for (int i = 0; i < NumOfThread; i++) 
{ 
threads[i].Join(); 
}
}
//명시적으로 특정 Task를 독립적인 물리적으로 처리가능한 단위(CPU Core)에게 명시적 작업을 위임했을때 완전한 형태의 병렬처리임 ( Task수는 Core개수를 넘지 않는 조건)


 주어진 시간에 작업을 나눠 스레드 스케쥴링에의해 블락킹없이 동시에 처리하느냐(동시성)?  

자원을  자원을 바탕으로 한꺼번에 처리하느냐(병렬)? 의 문제는 CPU에만 국한된 문제가 아니며

어느방식을 사용하던, 실제로는 꼭 한가지 방식 한정적으로 작동 되지 않습니다. 


Info
title추가정보

단순하게 네트워크 모델을 대입시키면,단순한 분산처리 작동을 고려하면, ( L4장비에의해서만 병렬처리를 고민함 )

하나의 장비에 어떻게 여러가지 일을 복수개의 작업을 한꺼번에 효율적으로 시킬것인가? (동시성)

여러가지 장비에 어떻게 단일 복수 작업을 배분하여 시킬것인가? ( 병렬처리) 의 고민이될듯하며


조금더 복잡한 네트워크 모델을 적용을 시키면 새로운 해석이 가능합니다.분산처리모델을 적용 시키면 ( 스위칭 장비와 연동되어, 서비스에 분산 모델이 적용되어 작동됨 )

여러가지 장비에 ,여러가지 작업에대한 서브Task를 어떻게 나눠서 동시에 시킬것인가분산 처리할것인가? ( 동시성과 병렬처리)

깊은 고민에 빠질수가 있습니다.

Akka에서는 StrameSinkAndFlows+Cluster 조합으로 이러한 문제를 풀려고 하고있습니다.


...