Is Scala's parallel collection a type of Data-parallel model abstraction?
http://docs.scala-lang.org/overviews/parallel-collections/overview.html
taichia
It seems to be so, though it technically won't fit under the "Today" form of Data-parallel model. The creators of the language make parallelizing your code for simple vector computation very easy.
As shown in the website:
val list = (1 to 10000).toList
list.map(_ + 42)
This is a sequential way to add the number 42 to each element in the list.
In scala, it seems to be that you can easily just add a par or parallel(based on what operation you want to perform).
so in this case, we can write
list.par.map(_ + 42)
According to the slides, it doesn't seem to be the case that you're mapping a function to a list, but instead you're putting the list through a function.
I'm not entirely confident in my scala programming, as my only exposure to this language is from my highschool friends who don't go to this school.
LazyKiller
Here I'm confused of the difference between SIMD and SPMD,
As I understand, SIMD is a vectorization at instruction level, while SPMD is a high level abstraction at programs and can split different parts across multi-processors.
Is Scala's parallel collection a type of Data-parallel model abstraction? http://docs.scala-lang.org/overviews/parallel-collections/overview.html
It seems to be so, though it technically won't fit under the "Today" form of Data-parallel model. The creators of the language make parallelizing your code for simple vector computation very easy. As shown in the website:
val list = (1 to 10000).toList
list.map(_ + 42)
This is a sequential way to add the number 42 to each element in the list. In scala, it seems to be that you can easily just add a par or parallel(based on what operation you want to perform). so in this case, we can write
list.par.map(_ + 42)
According to the slides, it doesn't seem to be the case that you're mapping a function to a list, but instead you're putting the list through a function.
I'm not entirely confident in my scala programming, as my only exposure to this language is from my highschool friends who don't go to this school.
Here I'm confused of the difference between SIMD and SPMD, As I understand, SIMD is a vectorization at instruction level, while SPMD is a high level abstraction at programs and can split different parts across multi-processors.