Parallel Programming with Pictures in a Snap!

For decades, computing speeds seemingly doubled

every 24 months by increasing the clock speed and giving

software a ”free ride” to better performance. This free ride,

however, effectively ended by the mid-to-late 2000s. With clock

speeds having plateaued and computational horsepower instead

increasing due to increasing the number of cores per processor,

the vision for parallel computing, which started more than 40

years ago, is a revolution that has now (ubiquitously) arrived.

In addition to traditional supercomputing clusters, parallel computing

with multiple cores can be found in desktops, laptops,

and even mobile smartphones. This ubiquitous parallelism in

hardware presents at least two major challenges: (1) difficulty

in easily extracting parallel performance via current software

abstractions and (2) difficulty in delivering correctness — as

even without parallelism, software defects already account for

up to 40 percent of system failures. Consequently, this paper

presents preliminary research that reduces the learning curve

to parallel programming by introducing such concepts into a

visual (but currently serial) programming language called Snap!.

Furthermore, the proposed visual abstractions automatically

generate parallel code for the end user so as to better ensure

that the resulting (text-based) code is correct.

For more details : Creative Product Video


Programmer FAQs

You May Like