Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3338698.3338886acmconferencesArticle/Chapter ViewAbstractPublication PagesiscaConference Proceedingsconference-collections
research-article

Exposing Abstraction-Level Interactions with a Parallel Ray Tracer

Published: 22 June 2019 Publication History

Abstract

For students of any Computer Engineering program, attaining an integrated vision of the different abstraction levels is paramount to fully understand and exploit a computer system, especially when tough topics such as parallelism, concurrency, consistency, or atomicity are involved at the hardware-software frontiers. However, the structure of typical engineering programs leads to the creation of self-contained courses, where a single level of abstraction is studied and the overall picture is lost.
This paper provides a practical approach to show actual interactions between abstraction levels. This is achieved by implementing multiple components of a parallel ray tracer from the algorithmic level of the tracer to the atomic instructions required to guarantee atomicity. The students implement the full project throughout laboratories of different courses. Each lab focuses on a single abstraction level, but shows students the interactions with the rest of the levels. In addition, the hardware and software requirements of the approach are introduced, leading to the conclusion that Raspberry Pi is a suitable single-board computer for this project. Finally, this work also includes a preliminary assessment study of the proposed approach through the analysis of pre/post surveys filled out by the students.

References

[1]
ACM. 2016. Computer Engineering Curricula 2016 Curriculum Guidelines for Undergraduate Degree Programs in Computer Engineering.
[2]
G. R. Andrews. 1991. Concurrent Programming. Principles and Practice (1st ed.). The Benjamin/Cummings Publishing Company, Inc.
[3]
ARM. 2018. ARM DS-5 Development Studio Examples.
[4]
R. H. Arpaci-Dusseau and A. C. Arpaci-Dusseau. 2018. Operating Systems: Three Easy Pieces (1st ed.). Arpaci-Dusseau Books, LLC.
[5]
G. Coley. 2016. BeagleBoard X15 System Reference Manual. BeagleBoard.org.
[6]
J. Cuenca and D. Giménez. 2016. A Parallel Programming Course Based on an Execution Time-Energy Consumption Optimization Problem. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium Workshops. 996--1003.
[7]
U. Drepper. 2011. Futexes Are Tricky. http://people.redhat.com/drepper/futex.pdf.
[8]
U. Drepper and I. Molnar. 2005. The Native POSIX Thread Library for Linux. https://akkadia.org/drepper/nptl-design.pdf.
[9]
C. Ferner, B. Wilkinson, and B. Heath. 2013. Toward Using Higher-Level Abstractions to Teach Parallel Computing. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium Workshops. 1291--1296.
[10]
H. Franke, R. Russell, and M. Kirkwood. 2002. Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux. In Proceedings of the Ottawa Linux Symposium. 479--495.
[11]
D. Ginat and Y. Blau. 2017. Multiple Levels of Abstraction in Algorithmic Problem Solving. In Proceedings of the ACM SIGCSE Technical Symposium on Computer Science Education. 237--242.
[12]
J. Kramer. 2007. Is Abstraction the Key to Computing? Commun. ACM 50, 4 (2007), 36--42.
[13]
V. Kumar. 2002. Introduction to Parallel Computing (2nd ed.). Addison-Wesley Longman Publishing Co., Inc.
[14]
S. J. Matthews, J. C. Adams, R. A. Brown, and E. Shoop. 2018. Portable Parallel Computing with the Raspberry Pi. In Proceedings of the ACM SIGCSE Technical Symposium on Computer Science Education. 92--97.
[15]
N4L. 2018. N4L Newtons4th Ltd PPA500/1500 KinetiQ. User Manual. https://www.newtons4th.com/wp-content/uploads/2014/07/PPA5xx_15xx-User-Manual-v2-91.pdf.
[16]
M. Pharr, W. Jakob, and G. Humphreys. 2017. Physically Based Rendering: From Theory to Implementation (3rd ed.). Morgan Kaufmann Publishers Inc.
[17]
Qualcomm. 2016. DragonBoardTM410c based on Qualcomm®SnapdragonTM410E processor. Peripherals Programming Guide Linux Android. Qualcomm Technologies, Inc.
[18]
A. Silberschatz, P. B. Galvin, and G. Gagne. 2012. Operating System Concepts (9th ed.). Wiley Publishing.
[19]
D. J. Sorin, M. D. Hill, and D. A. Wood. 2011. A Primer on Memory Consistency and Cache Coherence (1st ed.). Morgan & Claypool Publishers.
[20]
W. Stallings. 2008. Operating Systems: Internals and Design Principles (6th ed.). Prentice Hall Press.
[21]
E. Upton, J. Duntemann, R. Roberts, T. Mamtora, and B. Everard. 2016. Learning Computer Architecture with Raspberry Pi (1st ed.). Wiley Publishing.
[22]
E. Upton and G. Halfacree. 2014. Raspberry Pi User Guide. John Wiley & Sons Ltd.
[23]
E. Veach. 1998. Robust Monte Carlo Methods for Light Transport Simulation. Ph.D. Dissertation. Stanford University. Advisor(s) Guibas, Leonidas J.
[24]
A. Williams. 2012. C++ Concurrency in Action. Manning Publications.

Cited By

View all
  • (2021)A 3D graphics rendering pipeline implementation based on the openCL massively parallel processingThe Journal of Supercomputing10.1007/s11227-020-03581-8Online publication date: 4-Jan-2021

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
WCAE'19: Proceedings of the Workshop on Computer Architecture Education
June 2019
70 pages
ISBN:9781450368421
DOI:10.1145/3338698
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 22 June 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Raspberry Pi
  2. cross-cutting project
  3. futex
  4. mutex
  5. survey

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Funding Sources

Conference

ISCA '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 9 of 10 submissions, 90%

Upcoming Conference

ISCA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)6
  • Downloads (Last 6 weeks)1
Reflects downloads up to 19 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2021)A 3D graphics rendering pipeline implementation based on the openCL massively parallel processingThe Journal of Supercomputing10.1007/s11227-020-03581-8Online publication date: 4-Jan-2021

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media