[SCALA] 스칼라에서 반복자를 병렬
SCALA스칼라에서 반복자를 병렬
완전히 미리 평가하지 않고 Iterator를 병렬화 스칼라의 병렬 컬렉션을 사용하여, 어떻게 든 수 있습니까?
여기, 즉지도 및 flatMap, 반복자의 기능 변환을 병렬화에 대해 이야기하고있다. 나는이 사전에 반복자의 일부 요소를 평가하고, 일부는 다음을 통해 소모되면 다음 더 많은 계산이 필요합니다 생각합니다.
나는 반복자를 필요로 찾을 수있는 모든 최선의에서의 Iterable 또는 스트림으로 변환 할 수 있습니다. 나는 그것에에서 .par 호출 할 때 스트림은 완전히 평가를 가져옵니다.
이 쉽게 사용할 수없는 경우 또한 구현의 제안을 환영합니다. 구현은 병렬지도와 flatMap을 지원해야한다.
해결법
-
==============================
1.나는이 오래된 질문이지만, iterata 라이브러리에서 ParIterator 구현 당신이 찾고 있던 무엇을합니까 실현?
나는이 오래된 질문이지만, iterata 라이브러리에서 ParIterator 구현 당신이 찾고 있던 무엇을합니까 실현?
scala> import com.timgroup.iterata.ParIterator.Implicits._ scala> val it = (1 to 100000).toIterator.par().map(n => (n + 1, Thread.currentThread.getId)) scala> it.map(_._2).toSet.size res2: Int = 8 // addition was distributed over 8 threads
-
==============================
2.표준 라이브러리에 가장 좋은 방법은 아마도 병렬 컬렉션하지만 concurrent.Future.traverse를 사용하지 않는 :
표준 라이브러리에 가장 좋은 방법은 아마도 병렬 컬렉션하지만 concurrent.Future.traverse를 사용하지 않는 :
import concurrent._ import ExecutionContext.Implicits.global Future.traverse(Iterator(1,2,3))(i => Future{ i*i })
나는이 즉시이 할 수있는 시작하는 모든 일을 실행할 것이라고 생각하지만.
-
==============================
3.우도에서 병렬 반복자 요소 이송 :
우도에서 병렬 반복자 요소 이송 :
https://groups.google.com/d/msg/scala-user/q2NVdE6MAGE/KnutOq3iT3IJ
나는 비슷한 이유로 Future.traverse 떨어져 움직였다. 내 사용 사례를 들어, 작업 N 작업을 유지, 내가 작업 대기열에서 실행 컨텍스트를 공급 스로틀에 코드와 상처.
내 첫 번째 시도는 피더 스레드를 차단 참여하지만 실행 컨텍스트에 알 작업에 원도 차단 작업을 걸고. 당신이 알고 무엇을 차단 악이다.
-
==============================
4.그것은 당신이 계신 정확히 따라 조금 어렵지만, 아마도 이런 식의 일 :
그것은 당신이 계신 정확히 따라 조금 어렵지만, 아마도 이런 식의 일 :
val f = (x: Int) => x + 1 val s = (0 to 9).toStream map f splitAt(6) match { case (left, right) => left.par; right }
이는 병렬로 상기 제 6 개 요소 (F)를 평가 한 다음, 나머지 위에 스트림을 리턴한다.
from https://stackoverflow.com/questions/17178201/parallel-iterator-in-scala by cc-by-sa and MIT license
'SCALA' 카테고리의 다른 글
[SCALA] 스칼라 - 바운드 변수의 목록을 얻을? (0) | 2019.11.22 |
---|---|
[SCALA] 스칼라에서 어떻게 튜플 값을 할당 할 수 있습니다? (0) | 2019.11.22 |
[SCALA] 형 PARAMS을 지정하기위한이 스칼라 중위 구문의 이름은 무엇입니까? (0) | 2019.11.22 |
[SCALA] "시도 -과 - 자원 / 사용"에 대한 간단한 스칼라 패턴 (자동 자원 관리) (0) | 2019.11.22 |
[SCALA] 나는 모든 스칼라에서 한 번에 여러 패키지에서 가져올 수 있습니까? (0) | 2019.11.22 |