[SCALA] 병렬 스칼라 평행 모음 정도
SCALA병렬 스칼라 평행 모음 정도
쿼리를 실행 스레드의 수를 설정 LINQ의 withDegreeOfParallelism에 스칼라 병렬 컬렉션 동등한이 있습니까? 나는 실행 스레드의 일련 번호를 가질 필요가 병렬로 작업을 실행하려는.
해결법
-
==============================
1.JVM이 1.6 이상을 사용하여 최신 트렁크, 함께,을 사용합니다 :
JVM이 1.6 이상을 사용하여 최신 트렁크, 함께,을 사용합니다 :
collection.parallel.ForkJoinTasks.defaultForkJoinPool.setParallelism(parlevel: Int)
하지만 이것은 미래의 변화에 대상이 될 수 있습니다. 모든 스칼라 작업 병렬 API를 구성하는 것보다 통합 된 접근 방식은 향후 출시 될 예정이다.
참고 그러나,이 프로세서 쿼리 분류기의 수를 결정하는 반면,이되지 않을 수 스레드의 실제 수는 쿼리를 실행에 참여. 병렬 컬렉션이 중첩 된 병렬 처리를 지원하기 때문에 그것이이 필요하다 발견 한 경우, 실제 스레드 풀 구현은 쿼리를 실행하기 위해 더 많은 스레드를 할당 할 수 있습니다.
편집하다:
스칼라 2.10에서 시작하여, 병렬 처리 수준을 설정하는 선호하는 방법은 다음 예에서와 같이, 새로운 TaskSupport 객체에 tasksupport 필드를 설정하는 과정입니다 :
scala> import scala.collection.parallel._ import scala.collection.parallel._ scala> val pc = mutable.ParArray(1, 2, 3) pc: scala.collection.parallel.mutable.ParArray[Int] = ParArray(1, 2, 3) scala> pc.tasksupport = new ForkJoinTaskSupport(new scala.concurrent.forkjoin.ForkJoinPool(2)) pc.tasksupport: scala.collection.parallel.TaskSupport = scala.collection.parallel.ForkJoinTaskSupport@4a5d484a scala> pc map { _ + 1 } res0: scala.collection.parallel.mutable.ParArray[Int] = ParArray(2, 3, 4)
포크와 ForkJoinTaskSupport 객체를 인스턴스화 풀 가입 동안 포크의 병렬 레벨은 풀 요구 값 (이 예에서는 2)로 설정해야 조인.
-
==============================
2.독립적으로 스칼라 2.9+ (도입 병렬 컬렉션)와 JVM 버전, 당신은이 같은 작은 덩어리에 병렬 작업을 실행하기 위해 (INT) 그룹화 파 기능의 조합을 사용할 수 있습니다 :
독립적으로 스칼라 2.9+ (도입 병렬 컬렉션)와 JVM 버전, 당신은이 같은 작은 덩어리에 병렬 작업을 실행하기 위해 (INT) 그룹화 파 기능의 조합을 사용할 수 있습니다 :
scala> val c = 1 to 5 c: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5) scala> c.grouped(2).seq.flatMap(_.par.map(_ * 2)).toList res11: List[Int] = List(2, 4, 6, 8, 10)
그룹화 (2) 따라서 보장 길이 2 이하, 배열은 반드시 청크의 집합 (이 예에서는 쓸모) 평행하지하게 다음 _ * (2) 함수가 작은 평행 청크 실행된다 (PAR로 작성된)의 덩어리를 만들고 가장 2 개 실에서 병렬로 실행된다.
이것은 그러나 약간 덜 효율적인 작업자 풀 매개 변수를 설정하는 것보다 수 있습니다, 나는 확실하지 그것에 대해 해요.
from https://stackoverflow.com/questions/5424496/scala-parallel-collections-degree-of-parallelism by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 형의 클래스 인스턴스를 보장하기 위해 "부정적인"상황에 맞는 경계를 사용하면 범위에서 결석 (0) | 2019.11.12 |
---|---|
[SCALA] 재생의 전류 루프의 인덱스를 가져 오기! 2 스칼라 템플릿 (0) | 2019.11.12 |
[SCALA] 자바에서 스칼라를 사용하여 다음 매개 변수로 함수를 전달 (0) | 2019.11.12 |
[SCALA] 어떻게 줄이기 위해 서열 [어느 [A, B]] 어느 [A, 서열 [B]에? (0) | 2019.11.12 |
[SCALA] 어떻게 스칼라 I 패턴 일치 배열은 무엇입니까? (0) | 2019.11.12 |