문제

는 병렬화를 수행하는 R5R 또는 높은 방식 구현이 있습니까?예를 들어, 내가해야 할 경우 :

(map (lambda (x) 
        (pure-functional-stuff x))
     '(1 3 5 7 11 13))
.

기계가 할 수있는 경우 1, 3, 5 및 7을 동시에 처리합니까?그것은 기능적 프로그래밍의 큰 장점 중 하나가되어야하지만, 유지 관리되는 최신 구성표를 찾을 수 없습니다.나는 그 기능에 부작용이 없음을 주장하지 않으면 평행화되지 않을 것입니다.

도움이 되었습니까?

해결책

저는 Schemik 개발자이고 나는 그것이 당신이 찾고있는 계획이라고 생각합니다.이 프로젝트는 여전히 개발되고 유지 관리됩니다.올해 초, R5R과의 호환성을 향상시키는 버전을 출시했습니다.불행히도, Schemik은 발현 평가 과정에 중점을 둔 연구 프로젝트이므로 표준 라이브러리는 여전히 비교적 작습니다.Schemik에서 놓친 특정 기능이 있습니까?

다른 팁

라켓 이에 매우 유사한 무언가를하는 일 그리고 또한 가까운 장래에 병렬 처리를위한 두 번째 접근법이 있습니다 ("장소라고 불릴 것 ").

컴파일러가 모든 것을 병렬로 평행하게하려고 노력하지 않기를 바랍니다. 을 낭비하는 시간 좌표 노력을 낭비하고

(map add1 '(1 2 3))
.

하나의 스레드에서 단지하는 것이 더 빠를 것입니다.그러나 요즘 많은 기능적 언어는 "add1"이 실제로 "실제로 긴 계산"일 때이 병렬로 만들 수 있습니다.각 언어는 자체 접근 방식을 가지고 있지만 선물을 사용하여 라켓에서 여러 코어를 활용하는 것이 좋습니다.

컴파일러가 자동으로 물건을 결정하는 동안 컴파일러가 너무 야심 찬이기 때문에 다른 장소의 둔화를 다루는 것보다는 "PMAP"에 "PMAP"로 변화하는 것이 나쁜 절충이 아닙니다..

기본값으로

(define (pmap f xs)
  (map touch (map (λ(x) (future (λ() (f x)))) xs)))
.

현명하게 사용될 때 꽤 멀리 얻을 수는 있지만 병렬 스레드에 사료하도록 데이터를 청취해야합니다.

방금 schemik

를 찾았습니다.

http://schemik.sourceforge.net/

는 2009 년 이상 유지되는 것으로 보인다. 그러나 그것이 R5R의인지를 모른다.

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