Parallel programming with pictures is a Snap
For decades, computing speeds seemingly doubled every 24 months by increasing the processor clock speed, thus giving software a “free ride” to better performance. This free ride, however, effectively ended by the mid-2000s. With clock speeds having plateaued and computational horsepower instead incr...
Saved in:
| Published in: | Journal of parallel and distributed computing Vol. 105; pp. 150 - 162 |
|---|---|
| Main Authors: | , , |
| Format: | Journal Article |
| Language: | English |
| Published: |
Elsevier Inc
01.07.2017
|
| Subjects: | |
| ISSN: | 0743-7315, 1096-0848 |
| Online Access: | Get full text |
| Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
| Abstract | For decades, computing speeds seemingly doubled every 24 months by increasing the processor clock speed, thus giving software a “free ride” to better performance. This free ride, however, effectively ended by the mid-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 a major challenge: the difficulty in easily extracting parallel performance via current software abstractions. Consequently, this paper presents an approach that reduces the learning curve to parallel programming by introducing such concepts into a visual (but currently sequential) programming language called Snap!, which was inspired by MIT’s Scratch project. Furthermore, our proposed visual abstractions can automatically generate parallel code for the end user to run in parallel on a variety of platforms from personal computing devices to supercomputers. Ultimately, this work seeks to increase parallel programming literacy so that users, whether novice or experienced, may leverage a world of ubiquitous parallelism to enhance productivity in all walks of life, including the sciences, engineering, commerce, and liberal arts.
•Introduction of explicit parallel-programming constructs into a picture-programming environment.•Block-based programming abstractions to reduce the learning curve to parallel programming.•Automated generation of OpenMP code from our parallel picture-programming environment. |
|---|---|
| AbstractList | For decades, computing speeds seemingly doubled every 24 months by increasing the processor clock speed, thus giving software a “free ride” to better performance. This free ride, however, effectively ended by the mid-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 a major challenge: the difficulty in easily extracting parallel performance via current software abstractions. Consequently, this paper presents an approach that reduces the learning curve to parallel programming by introducing such concepts into a visual (but currently sequential) programming language called Snap!, which was inspired by MIT’s Scratch project. Furthermore, our proposed visual abstractions can automatically generate parallel code for the end user to run in parallel on a variety of platforms from personal computing devices to supercomputers. Ultimately, this work seeks to increase parallel programming literacy so that users, whether novice or experienced, may leverage a world of ubiquitous parallelism to enhance productivity in all walks of life, including the sciences, engineering, commerce, and liberal arts.
•Introduction of explicit parallel-programming constructs into a picture-programming environment.•Block-based programming abstractions to reduce the learning curve to parallel programming.•Automated generation of OpenMP code from our parallel picture-programming environment. |
| Author | Feng, Wu-chun Feng, Annette Gardner, Mark |
| Author_xml | – sequence: 1 givenname: Annette surname: Feng fullname: Feng, Annette email: afeng@vt.edu organization: Department of Computer Science, Virginia Tech, Blacksburg, VA, USA – sequence: 2 givenname: Mark surname: Gardner fullname: Gardner, Mark email: mkg@vt.edu organization: Department of Computer Science, Virginia Tech, Blacksburg, VA, USA – sequence: 3 givenname: Wu-chun surname: Feng fullname: Feng, Wu-chun email: wfeng@vt.edu organization: Department of Computer Science, Virginia Tech, Blacksburg, VA, USA |
| BookMark | eNp9j11LwzAYhYNMcJv-Aa_6A2x937VJGvBGhl8wUFCvQ5qPmdK1JYmK_96OeeXF4MC5es7hWZBZP_SWkEuEAgHZdVu0o9HFCpAXgFPqEzJHECyHuqpnZA68KnNeIj0jixhbAETK6zm5elFBdZ3tsjEM26B2O99vs2-fPrLR6_QZbMx8zFT22qvxnJw61UV78ddL8n5_97Z-zDfPD0_r202uS4CUN02lK2fBUFSOCQHN9GZoSZ1glFuGzlHecG6UECvRoAamdVlxhYZxgVguyeqwq8MQY7BOjsHvVPiRCHLvK1u595V7Xwk4pZ6g-h-kfVLJD30KynfH0ZsDaiepL2-DjNrbXlvjg9VJmsEfw38BuxlyLQ |
| CitedBy_id | crossref_primary_10_1109_TLT_2022_3190318 crossref_primary_10_3390_su15065232 crossref_primary_10_3390_app15031521 crossref_primary_10_1016_j_jpdc_2021_03_014 crossref_primary_10_1109_ACCESS_2021_3051043 crossref_primary_10_1016_j_jpdc_2018_02_021 crossref_primary_10_1109_TE_2020_3030588 crossref_primary_10_1145_3423956 crossref_primary_10_1371_journal_pone_0201919 crossref_primary_10_1109_TVCG_2025_3549567 crossref_primary_10_1007_s10723_023_09666_x |
| Cites_doi | 10.1145/1953163.1953336 10.1145/1327452.1327492 10.1145/1592761.1592779 |
| ContentType | Journal Article |
| Copyright | 2017 Elsevier Inc. |
| Copyright_xml | – notice: 2017 Elsevier Inc. |
| DBID | AAYXX CITATION |
| DOI | 10.1016/j.jpdc.2017.01.018 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1096-0848 |
| EndPage | 162 |
| ExternalDocumentID | 10_1016_j_jpdc_2017_01_018 S0743731517300242 |
| GroupedDBID | --K --M -~X .~1 0R~ 1B1 1~. 1~5 29L 4.4 457 4G. 5GY 5VS 7-5 71M 8P~ 9JN AACTN AAEDT AAEDW AAIAV AAIKJ AAKOC AALRI AAOAW AAQFI AAQXK AAXUO AAYFN ABBOA ABEFU ABFNM ABFSI ABJNI ABMAC ABTAH ABXDB ABYKQ ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADFGL ADHUB ADJOM ADMUD ADTZH AEBSH AECPX AEKER AENEX AFKWA AFTJW AGHFR AGUBO AGYEJ AHHHB AHJVU AHZHX AIALX AIEXJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD ASPBG AVWKF AXJTR AZFZN BJAXD BKOJK BLXMC CAG COF CS3 DM4 DU5 E.L EBS EFBJH EFLBG EJD EO8 EO9 EP2 EP3 F5P FDB FEDTE FGOYB FIRID FNPLU FYGXN G-2 G-Q G8K GBLVA GBOLZ HLZ HVGLF HZ~ H~9 IHE J1W JJJVA K-O KOM LG5 LG9 LY7 M41 MO0 N9A O-L O9- OAUVE OZT P-8 P-9 P2P PC. Q38 R2- RIG ROL RPZ SBC SDF SDG SDP SES SET SEW SPC SPCBC SST SSV SSZ T5K TN5 TWZ WUQ XJT XOL XPP ZMT ZU3 ZY4 ~G- ~G0 9DU AATTM AAXKI AAYWO AAYXX ABDPE ABWVN ACLOT ACRPL ACVFH ADCNI ADNMO ADVLN AEIPS AEUPX AFJKZ AFPUW AGQPQ AIGII AIIUN AKBMS AKRWK AKYEP ANKPU APXCP CITATION EFKBS ~HD |
| ID | FETCH-LOGICAL-c300t-bb4c4fe0d51af6990b011d535f9657e61ff57b77da9929b1c06cc347a1d679113 |
| ISICitedReferencesCount | 19 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000400536800015&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 0743-7315 |
| IngestDate | Sat Nov 29 07:19:03 EST 2025 Tue Nov 18 20:27:40 EST 2025 Fri Feb 23 02:31:21 EST 2024 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Keywords | Visual programming Explicit parallel computing Pedagogical tools Computer science education Block-based programming Parallel computational patterns Languages for PDC and HPC Programming environments |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c300t-bb4c4fe0d51af6990b011d535f9657e61ff57b77da9929b1c06cc347a1d679113 |
| PageCount | 13 |
| ParticipantIDs | crossref_primary_10_1016_j_jpdc_2017_01_018 crossref_citationtrail_10_1016_j_jpdc_2017_01_018 elsevier_sciencedirect_doi_10_1016_j_jpdc_2017_01_018 |
| PublicationCentury | 2000 |
| PublicationDate | July 2017 2017-07-00 |
| PublicationDateYYYYMMDD | 2017-07-01 |
| PublicationDate_xml | – month: 07 year: 2017 text: July 2017 |
| PublicationDecade | 2010 |
| PublicationTitle | Journal of parallel and distributed computing |
| PublicationYear | 2017 |
| Publisher | Elsevier Inc |
| Publisher_xml | – name: Elsevier Inc |
| References | Silberschatz, Galvin, Gagne (br000070) 2013 National Instruments, LabVIEW System Design Software. URL B. Harvey, J. Monig, Snap! reference manual. URL The College Board, College Board Officially Launches New AP Computer Science Principles Course to Increase Student Engagement in Computing (Dec 2014). URL W3C, Web Workers, w3c working draft 24 september 2015. URL Apache Software Foundation, Hadoop. URL (Checked 2016-12-13) (Dec 2012). Averbukh, Bakhterev (br000010) 2013; 2 Resnick, Maloney, Monroy-Hernández, Rusk, Eastmond, Brennan, Millner, Rosenbaum, Silver, Silverman (br000060) 2009; 52 The College Board, College Board and NSF Expand Partnership to Bring Computer Science Classes to High Schools Across the U.S. (June 2015). URL J. Dean, S. Ghemawat, Mapreduce: Simplified data processing on large clusters, Communications of the ACM - 50th Anniversary Issue: 1958–2008 51, 2008, pp. 107–113. Harvey, Garcia, Paley, Segars (br000025) 2012 . Lee, Webber (br000040) 2003 L. Meadows, T. Mattson, A hands-on introduction to openmp (November 2008). A. Savitzky, S. Mayr, Parallel.js. URL S.K. Prasad, A. Chtchelkanova, F. Dehne, M. Gouda, A. Gupta, J. Jaja, K. Kant, A.L. Salle, R. LeBlanc, A. Lumsdaine, D. Padua, M. Parashar, V. Prasanna, Y. Robert, A. Rosenberg, S. Sahni, B. Shirazi, A. Sussman, C. Weems, J. Wu, Nsf/ieee-tcpp curriculum initiative on parallel and distributed computing - core topics for undergraduates, version i E. Joseph, A. Snell, C. Willard, (July 2004). URL Browne, Dongarra, Hyder, Moore, Newton (br000015) 1996 Harvey (10.1016/j.jpdc.2017.01.018_br000025) 2012 10.1016/j.jpdc.2017.01.018_br000050 10.1016/j.jpdc.2017.01.018_br000080 10.1016/j.jpdc.2017.01.018_br000035 10.1016/j.jpdc.2017.01.018_br000045 10.1016/j.jpdc.2017.01.018_br000055 Resnick (10.1016/j.jpdc.2017.01.018_br000060) 2009; 52 10.1016/j.jpdc.2017.01.018_br000065 10.1016/j.jpdc.2017.01.018_br000020 Lee (10.1016/j.jpdc.2017.01.018_br000040) 2003 10.1016/j.jpdc.2017.01.018_br000075 10.1016/j.jpdc.2017.01.018_br000030 10.1016/j.jpdc.2017.01.018_br000085 Browne (10.1016/j.jpdc.2017.01.018_br000015) 1996 10.1016/j.jpdc.2017.01.018_br000005 Averbukh (10.1016/j.jpdc.2017.01.018_br000010) 2013; 2 Silberschatz (10.1016/j.jpdc.2017.01.018_br000070) 2013 |
| References_xml | – reference: The College Board, College Board and NSF Expand Partnership to Bring Computer Science Classes to High Schools Across the U.S. (June 2015). URL – reference: J. Dean, S. Ghemawat, Mapreduce: Simplified data processing on large clusters, Communications of the ACM - 50th Anniversary Issue: 1958–2008 51, 2008, pp. 107–113. – reference: W3C, Web Workers, w3c working draft 24 september 2015. URL – reference: (Checked 2016-12-13) (Dec 2012). – volume: 52 start-page: 60 year: 2009 end-page: 67 ident: br000060 article-title: Scratch: programming for all publication-title: Commun. ACM – reference: . – volume: 2 start-page: 126 year: 2013 end-page: 131 ident: br000010 article-title: The analysis of visual parallel programming languages publication-title: Adv. Comput. Sci.: Int. J. – reference: The College Board, College Board Officially Launches New AP Computer Science Principles Course to Increase Student Engagement in Computing (Dec 2014). URL – year: 1996 ident: br000015 article-title: Visual programming and parallel computing, Tech. Rep – year: 2013 ident: br000070 article-title: Operating System Concepts, ninth ed. – reference: Apache Software Foundation, Hadoop. URL – start-page: 662 year: 2012 ident: br000025 article-title: Snap!:(build your own blocks) publication-title: Proceedings of the 43rd ACM Technical Symposium on Computer Science Education – reference: E. Joseph, A. Snell, C. Willard, (July 2004). URL – reference: L. Meadows, T. Mattson, A hands-on introduction to openmp (November 2008). – reference: S.K. Prasad, A. Chtchelkanova, F. Dehne, M. Gouda, A. Gupta, J. Jaja, K. Kant, A.L. Salle, R. LeBlanc, A. Lumsdaine, D. Padua, M. Parashar, V. Prasanna, Y. Robert, A. Rosenberg, S. Sahni, B. Shirazi, A. Sussman, C. Weems, J. Wu, Nsf/ieee-tcpp curriculum initiative on parallel and distributed computing - core topics for undergraduates, version i, – reference: B. Harvey, J. Monig, Snap! reference manual. URL – year: 2003 ident: br000040 article-title: Taxonomy for visual parallel programming languages, Tech. Rep – reference: National Instruments, LabVIEW System Design Software. URL – reference: A. Savitzky, S. Mayr, Parallel.js. URL – ident: 10.1016/j.jpdc.2017.01.018_br000045 – year: 2013 ident: 10.1016/j.jpdc.2017.01.018_br000070 – ident: 10.1016/j.jpdc.2017.01.018_br000055 doi: 10.1145/1953163.1953336 – ident: 10.1016/j.jpdc.2017.01.018_br000075 – ident: 10.1016/j.jpdc.2017.01.018_br000020 doi: 10.1145/1327452.1327492 – ident: 10.1016/j.jpdc.2017.01.018_br000030 – ident: 10.1016/j.jpdc.2017.01.018_br000035 – ident: 10.1016/j.jpdc.2017.01.018_br000050 – volume: 52 start-page: 60 issue: 11 year: 2009 ident: 10.1016/j.jpdc.2017.01.018_br000060 article-title: Scratch: programming for all publication-title: Commun. ACM doi: 10.1145/1592761.1592779 – start-page: 662 year: 2012 ident: 10.1016/j.jpdc.2017.01.018_br000025 article-title: Snap!:(build your own blocks) – year: 2003 ident: 10.1016/j.jpdc.2017.01.018_br000040 – volume: 2 start-page: 126 issue: 4 year: 2013 ident: 10.1016/j.jpdc.2017.01.018_br000010 article-title: The analysis of visual parallel programming languages publication-title: Adv. Comput. Sci.: Int. J. – ident: 10.1016/j.jpdc.2017.01.018_br000005 – year: 1996 ident: 10.1016/j.jpdc.2017.01.018_br000015 – ident: 10.1016/j.jpdc.2017.01.018_br000085 – ident: 10.1016/j.jpdc.2017.01.018_br000065 – ident: 10.1016/j.jpdc.2017.01.018_br000080 |
| SSID | ssj0011578 |
| Score | 2.257813 |
| Snippet | For decades, computing speeds seemingly doubled every 24 months by increasing the processor clock speed, thus giving software a “free ride” to better... |
| SourceID | crossref elsevier |
| SourceType | Enrichment Source Index Database Publisher |
| StartPage | 150 |
| SubjectTerms | Block-based programming Computer science education Explicit parallel computing Languages for PDC and HPC Parallel computational patterns Pedagogical tools Programming environments Visual programming |
| Title | Parallel programming with pictures is a Snap |
| URI | https://dx.doi.org/10.1016/j.jpdc.2017.01.018 |
| Volume | 105 |
| WOSCitedRecordID | wos000400536800015&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| journalDatabaseRights | – providerCode: PRVESC databaseName: Elsevier SD Freedom Collection Journals 2021 customDbUrl: eissn: 1096-0848 dateEnd: 99991231 omitProxy: false ssIdentifier: ssj0011578 issn: 0743-7315 databaseCode: AIEXJ dateStart: 19950101 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1Lb9QwELZgy4FLeYuWgnzgVlLFmziOjyvU8hCqKrXA3iI_YrGrkka72ao_n5nYDimPCpCQVtEqirO258v4W2e-GUJe5nXBdKZUMhUuxz8oLNGWF4lLS8ecBXfYl-n89EEcH5fzuTwJEoJ1X05ANE15dSXb_2pqOAfGRunsX5h7uCmcgO9gdDiC2eH4R4Y_USusj3IeQ6--Dtut7aJ_X7DGIuZq_7RR7W-oaRtvgbvqFlPrYlWsuhfAtZsurnY9g_S-Yobqnm4AyRvAXVDSjMVA8erPm8R82TTjHQcmhujUsA0WpTDXIjX7XKci89rMg9p70xQjnEufSnNwtykfOUzm086GtZd5z_yTW_c7DMuDZWsx7SQTfarV4Livp8s-xY5gPxhm4gcCcptsTQWX5YRszd4dzt8P75gY9-t07HiQVPnovx9_6de0ZURFzu6T7WAoOvO2f0Bu1c1Dci_W56DBXT8iryIU6AgKFKFAIxToYk0VRSg8Jh-PDs9ev01CdYzEwMC6ROvc5K5OLWfKFUAqNAzJ8ow7WXABj6BzXGghrJJAgTUzaWFMlgvFbCFgicuekElz0dRPCZVASnM3tVPUJacyU7LQurBZDU-skcztEBYHX5mQOh4rmJxXMUZwWeGEVThhVcrgU-6Q_aFN6xOn3Hg1j3NaBernKV0FELih3e4_tntG7n5H9h6ZdKtN_ZzcMZfdYr16EZDyDf62evY |
| linkProvider | Elsevier |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Parallel+programming+with+pictures+is+a+Snap&rft.jtitle=Journal+of+parallel+and+distributed+computing&rft.au=Feng%2C+Annette&rft.au=Gardner%2C+Mark&rft.au=Feng%2C+Wu-chun&rft.date=2017-07-01&rft.pub=Elsevier+Inc&rft.issn=0743-7315&rft.eissn=1096-0848&rft.volume=105&rft.spage=150&rft.epage=162&rft_id=info:doi/10.1016%2Fj.jpdc.2017.01.018&rft.externalDocID=S0743731517300242 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0743-7315&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0743-7315&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0743-7315&client=summon |