스칼라는 Java에 비해 많은 기능과 개선점을 갖고있는 것으로 보입니다. 나는 스칼라에 대해 먼저 배우고 싶은 것들을 분리하는데 어려움을 겪고있다. 예를 들어 루프를 사용하여 여러 스레드 또는 프로세스에서 실행되도록하려는 경우 Google에서 무엇을 찾아야합니까? 나는 GPU 컴퓨팅 환경에서 일을보다 빠르게 수행하는 방법에 대한 높은 수준의 관점을 얻는 것이 정말 쉽다.멀티 스레딩에 초점을 맞춘 스칼라 튜토리얼을 찾으려는 시도
답변
스칼라의 병렬 컬렉션 특히 쉽습니다. 정수
i <- 1 to 10
에 비해 비용이 많이 드는 작업f(i)
를 병렬화하는만큼 간단(1 to 10).par.map(i => f(i))
스칼라 시스템에서 사용할 수있는 코어/프로세서의 수에 필적 작업 스레드의 수를 할당하려고합니다. 다음은 자세한 내용이 담긴 비디오입니다. http://days2010.scala-lang.org/node/138/140
Akka framework은 스레드 또는 원격 프로세스를 통한 병렬 처리를 허용하는 성숙한 주로 액터 기반의 동시성 방식입니다. 액터는 기본적으로 공유 상태가 아닌 메시지를 전달할 수있는 스레드입니다. 새로 형성된 회사 Typesafe은 스칼라 언어와 Akka를 개발하고 있습니다.
Scala 용 소프트웨어 트랜잭션 메모리 (STM) 라이브러리 draft release을 사용해 볼 수도 있습니다. 라이브러리는 표준 스칼라 배포판에 포함될 것을 목표로하고 있습니다. 수동으로 관리되는 스레드와 비교할 때 STM은 데드 록과 같은 오류의 가능성을 줄이는 더 단순한 동시성 모델입니다. 통신 작업 시퀀스를 단일 동기화 블록으로 그룹화하여 작동합니다. 여러 스레드가 상호 호환되지 않는 것으로 판명 된 공유 상태로 무언가를 수행하면 오류가 발생하고 롤백 될 수 있습니다. 아마도 편의를 위해 지불 할 성능 비용이 있습니다. STM이 많은 수의 스레드로 확장되는 지 잘 모르겠습니다.
Spark framework은 클러스터 컴퓨팅을 다루며 MapReduce의 일반화 인 것으로 보입니다.
스칼라의 GPU 프로그래밍의 경우 ScalaCL이 있습니다. Java bindings을 사용할 수도 있습니다.
Stanford와 EPFL의 실험실 간의 공동 작업으로 진행되는 매우 흥미로운 언어 가상화 작업도 있습니다. This page에는 논문에 대한 링크가 있으며 더 많은 링크가있는 course at Stanford이 있습니다. GPU를 포함하여 이기종 컴퓨팅 환경에서 고성능 컴퓨팅을위한 DSL을 개발하는 데는 몇 가지 흥미로운 애플리케이션이 있습니다.
업데이트. Daniel Sobral은 또한 Tools and Libraries wiki을 제안했습니다.
- 1. 안드로이드 - 초점을 맞춘 이미지보기
- 2. 안드로이드 위젯 초점을 맞춘 배경색
- 3. jQuery가 초점을 맞춘 형제/번지를 전환합니다.
- 4. 요소에 초점을 맞춘 후 javascript를 실행하십시오.
- 5. dijit.Tree에 초점을 맞춘 노드를 얻는 방법?
- 6. WPF에 초점을 맞춘 몇 가지 질문
- 7. Mac OS의 앱에 초점을 맞춘 키보드 단축키
- 8. SQL 2005 데이터베이스에서 공간을 되 찾으려는 시도
- 9. 멀티 스레딩에 대한 기본 질문
- 10. 멀티 스레딩에 대해 C 언어로 알려주십시오. #
- 11. 디버깅, 멀티 스레딩에 관한 면접 질문
- 12. iOS에서 멀티 스레딩에 대한 도움이 필요하십니까?
- 13. 초점을 맞춘 TD에 대한 HTML 마크 업은 무엇입니까?
- 14. 마지막으로 초점을 맞춘 텍스트 입력 구성 요소는 무엇입니까?
- 15. 오렌지 빛을 만들어 안드로이드에 초점을 맞춘 위젯을 나타 내기 위해
- 16. brownfield 애플리케이션 리팩토링 및 애자일에 초점을 맞춘 새로운 직업 시작
- 17. OSX bash - 실행 파일/실행 파일에 초점을 맞춘 윈도우?
- 18. 기능성 시도 및 캐치 스칼라
- 19. 소켓/TCP 연결 용 멀티 스레딩에 대한 질문
- 20. NSTextField 초점을 맞 췄습니까?
- 21. 코드 검토 (멀티 스레딩시 첫 번째 시도)
- 22. 스칼라 또는 자이 썬의 멀티 메소드 대신
- 23. gridcontrol 내의 두 개의 gridviews - 내부 격자에 초점을 맞춘 행 핸들을 가져올 수 없습니다.
- 24. Node.js 라이브러리에 제안 된 콜백 스타일은 무엇입니까? 오류를 처리하는 방법에 초점을 맞춘
- 25. 왜 파이썬에서 스레딩에 TypeError가 발생합니까?
- 26. 제로 주변의 중심을 맞춘 부분
- 27. XPCE 튜토리얼을 찾고
- 28. 심비안 개발을위한 튜토리얼을 시작하십시오
- 29. 젠토 -이 튜토리얼을 따라
- 30. 스칼라 외에 JVM에서 실행되는 대체 멀티 스레딩 최적화 언어는 무엇입니까?
STM에 감사드립니다. 그 사실을 알지 못했습니다. 유망 해 보인다. –
이 답변은 정말로 FTW입니다. 당신은 라이브러리와 도구 위키에 대한 링크를 붙여 넣었을 것입니다 ... –
@Daniel, updated, thanks. –