한번 작업을 4 개의 독립적 인 작업으로 나누어 병렬로 실행하십시오. 각 작업을 추가로 병렬로 실행할 수 있습니까? (각 작업에는 각 루프에 대해 많은 내용이 있습니다 - 병렬 코드로 구현 될 수 있음)병렬 코드 내 병렬
1
A
답변
0
분명히 할 수 있지만, 그것은 doesn't guarantee thread safety입니다.
당신은 당신의 반복 (더 많은, 더 나은)
의 양의 크기 무엇
- 불구하고 계정에 여러 요인을해야 프로세서의 코어
Parallel.For(0, length1, i => { Parallel.For(0, length2, j => { Console.WriteLine(i * j); }); });
1
아마 알고리즘을 재검토하고 하나의 Parallel.For() 만 유지해야합니다. 그 이유는 다음 링크에 설명되어 있습니다. 단락에서 "외부 대 내부 루프":
"보통 Parallel.For 및 Parallel.ForEach는 내부 루프가 아닌 외부 루프에서 가장 잘 작동합니다. 다음과 같은 예에서는 일반적으로 내부 병렬화의 이점을 위해 100 개 이상의 코어가 필요합니다. "
Parallel.For (0, 100, i =>
{
Parallel.For (0, 50, j => Foo (i, j)); // Sequential would be better
});
+0
("상각", "희석"하지 말 것). Foo (i, j)가 제공하는 작업의 크기가 고르지 않은 경우가 아닙니다. 그런 다음 프로그램이 병렬 처리에 대한 기회를 최대로 식별하고 컴파일러/런타임 시스템이 실제 프로세서에서 병렬로 실행할 작업을 선택하도록합니다. 이 작업을 위해서는 작업 도용 스케줄러가 있어야합니다. D # C#이 있다면. –
관련 문제
- 1. OpenMP - 병렬 코드 내에서 병렬 코드 실행
- 2. 병렬?
- 3. 부스트 :: 테스트 병렬 코드 사용
- 4. 병렬 코드 실행 python2.7 ndb
- 5. 병렬 코드 실행의 잠재적 위험
- 6. 병렬 테스트 병렬 클래스 실행
- 7. LinqToSql - 병렬 - DataContext 및 병렬
- 8. matlab에서 행렬 곱셈을위한 병렬 코드
- 9. xargs 병렬 캡처 종료 코드
- 10. 거리 계산을위한 병렬 C 코드
- 11. 내 haskell 병렬 코드의 모든 병렬 처리를 악용하는 방법은 무엇입니까?
- 12. OpenMP 태스크와 병렬 실행 및 병렬 실행
- 13. omp 병렬 섹션 내에서 openmp 병렬 섹션?
- 14. 병렬 반복기
- 15. 병렬 상속
- 16. 병렬 감소
- 17. 병렬 실행이
- 18. 병렬 처리()
- 19. 병렬 Dijkstra
- 20. OpenMP (병렬 용) 병렬 처리시 세그먼트 오류
- 21. 작업 병렬 라이브러리 및 다중 병렬 작업
- 22. 스칼라 병렬 컬렉션에서 어떤 작업을 병렬 처리합니까?
- 23. 병렬 컴퓨팅 툴없이 병렬 처리 도구 상자
- 24. 병렬 또는 병렬 HTML 파서가 있습니까?
- 25. 병렬 for 루프에서 OpenMP 호출 병렬 함수
- 26. Gradle을 병렬
- 27. 병렬 회로
- 28. 병렬 프로세스
- 29. 병렬 부풀기
- 30. 실행 병렬
나는 보통 각 코어가 한 번에 1 개의 스레드를 처리 할 수 있다고 생각하여 여러 개의 스레드 = 코어 수를 사용합니다. 나는 분명히 틀렸다. –