문제

Wikipedia에 따르면, "당황스럽게 평행 한"문제는 문제를 여러 병렬 작업으로 분리하기 위해 거의 또는 전혀 필요하지 않은 문제입니다. 레이 트레이싱은 종종 각 광선이 원칙적으로 병렬로 처리 될 수 있기 때문에 예제로 인용됩니다.

분명히 일부 문제는 병렬화하기가 훨씬 어렵습니다. 일부는 불가능할 수도 있습니다. 나는 어떤 용어가 사용되는지, 그리고 이러한 더 어려운 경우에 어떤 표준 예제가 있는지 궁금합니다.

가능한 이름으로 "성가신 순차적"을 제안 할 수 있습니까?

도움이 되었습니까?

해결책

본질적으로 순차적.

예 : 여성의 수는 임신 기간을 줄이지 않습니다.

다른 팁

"당황스럽게 평행 한"문제와 반대가 있습니다.

완벽하게 순차적

반대는 a 평면 할 수없는 문제, 즉 문제, 속도를 올리다 둘 이상의 프로세서를 사용하여 달성 할 수 있습니다. 몇 가지 제안이 이미 게시되었지만 또 다른 이름을 제안합니다. 완벽하게 순차적 문제.

예 : I/O 바운드 문제, "f1000000(엑스0) "문제의 유형, 확실한 계산 암호화 해시 기능.

의사 소통 집약적

또 다른 반대는 많은 병렬 통신이 필요한 병렬화 가능한 문제입니다. 의사 소통 집약적 문제). 이러한 문제를 구현하면 대역폭이 높고 긴장이 낮은 상호 연결이있는 슈퍼 컴퓨터에서만 제대로 확장됩니다. 이것을 당황스럽게 평행 한 문제로 대조하여, 상호 연결이 매우 열악한 시스템에서도 효율적으로 실행되는 구현 (예 : 전원).

의사 소통 집약적 문제의 주목할만한 예 : 해결 A x = b 어디 A 크고 밀도가 높은 매트릭스입니다. 사실, 문제의 구현은 상위 500 순위. 개별 CPU의 계산 능력을 모두 강조하기 때문에 좋은 벤치 마크입니다. 그리고 상호 연결의 품질 (의사 소통의 강도로 인해).

보다 실용적인 용어로, 개별 시간 스테핑을 사용하여 일반 그리드에서 부분 미분 방정식 시스템을 해결하는 수학적 모델 (생각 : 일기 예보, 실리코에서 충돌 테스트), 병렬화 가능합니다 도메인 분해. 즉, 각 CPU는 그리드의 일부를 처리하고 각 시간이 끝날 때 CPU는 "이웃"CPU와 지역 경계에서 결과를 교환합니다. 이러한 교환은 이러한 클래스의 문제가 의사 소통 집약적으로 남아 있습니다.

나는 이것을 게시하지 않는 것이 힘든 시간을 보내고있다 ... 나는 그것이 토론에 아무것도 추가하지 않는다는 것을 알고 있기 때문에 .. 그러나 모든 Southpark 팬들에게있어

"슈퍼 시리얼!"

"완고하게 연쇄"?

부패하게 평행 한 반대입니다 암델의 법칙, 일부 작업은 평행 할 수 없으며 완벽하게 병렬 작업이 필요한 최소 시간은 순수한 순차적 인 작업에 의해 지시된다고 말합니다.

순차적 프로세스의 "표준 예":

  • 아기 만들기 :“충돌 프로그램은 9 명의 여성이 임신하면 한 달에 아기를 얻을 수 있다는 이론에 근거하기 때문에 실패합니다.” - Werner von Braun에 의한 것
  • pi, e, sqrt (2) 및 기타 비이성적 숫자를 수백만 자릿수로 계산 : 대부분의 알고리즘 순차적
  • 내비게이션 : 지점에서 Z로 이동하려면 먼저 중간 지점 B, C, D 등을 거쳐야합니다.
  • Newton의 방법 : 다음에 더 나은 근사치를 계산하려면 각 근사치가 필요합니다.
  • 챌린지-응답 인증
  • 주요 강화
  • 해시 체인
  • 해시시

p- 완성 (그러나 아직 확실하지 않은).

나는 "굴욕적으로 순차적"을 사용합니다.

"Gladdengly 순차적"

모두 데이터 종속성과 관련이 있습니다. 당황스럽게 평행 한 문제는 솔루션이 많은 독립적 인 부분으로 구성되는 문제입니다. 이러한 특성의 반대 문제는 거대한 데이터 종속성을 가진 문제이며, 동시에 수행 할 수있는 것은 거의 없습니다. 퇴화 적으로 의존적입니다?

내가 가장 자주 들었던 용어는 "단단히 결합"되며, 각 프로세스는 중간 데이터를 공유하기 위해 상호 작용하고 자주 통신해야한다는 점에서. 기본적으로 각 프로세스는 계산을 완료하기 위해 다른 프로세스에 의존합니다.

예를 들어, 행렬 처리에는 종종 각 배열 파티션의 가장자리에서 경계 값을 공유하는 것이 포함됩니다.

이는 문제의 각 부분이 완전히 독립적 인 (또는 거의) IPC가 필요하지 않은 부패하게 평행하게 (또는 느슨하게 결합 된) 문제와 대조적입니다. 마스터/노동자 병렬성을 생각하십시오.

자랑스럽게 순차적입니다.

나는 항상 QuickSort의 파티션 단계를 '슬프게 순차적'ALA 선호했습니다.

자연스럽고 잘못 순차적 인 문제를 겪는 것이 어떤 것인지 추측해야한다면 시도하십시오.

행복하게 순차적으로

반대당황스럽게 평행합니다'.

"완전히 연쇄?"

과학자들이 할 수없는 것보다 할 수있는 일에 대해 더 많이 생각한다는 것은 놀라운 일이 아닙니다. 특히이 경우 병렬화에 대한 대안이 평소와 같이 모든 것을 수행하는 경우.

전적으로 평면 할 수 없습니까? 비관적으로 병렬화 할 수 있습니까?

그 반대는 "당연히 연쇄"입니다.

그 병렬성이 동시에 많은 일을하는 행위는 T T 단계를 동시에 수행하는 행위입니다. 그 반대는 시간-순차적 문제 일 수 있습니다

본질적으로 순차적 인 문제. 이것은 CAD 패키지 및 일부 종류의 엔지니어링 분석에서 일반적입니다.

노드 간의 데이터 종속성이있는 트리 트래버스.

그래프를 가로 지르고 노드의 무게를 추가한다고 상상해보십시오.

당신은 그것을 병렬화 할 수 없습니다.

CAD 소프트웨어는 부품을 트리로 표시하고 객체로 렌더링하려면 트리를 가로 지르야합니다. 이러한 이유로 CAD 워크 스테이션은 많은 코어보다는 코어가 적고 빠르게 사용됩니다.

읽어 주셔서 감사합니다.

물론, 나는 두 가지 모두 '이름'이 문제가되지 않는다고 생각합니다. 기능적 프로그래밍 관점에서 '성가신 순차적'부분이 알고리즘의 가장 작은 또는 그 이상이라고 말할 수 있습니다.

실제로 평행 접근법을 취하지 않으면 '당황스럽게 평행'은 나쁜 코딩 실습입니다.

따라서 좋은 코딩 연습이 항상 당신의 솔루션을 독립적 인 조각으로 제동하는 것이라면, 이런 것들을 주어지는 점을 보지 못합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top