IMSE 8410 Advanced Computational Systems and Data Engineering
DOI: 10.5281/zenodo.4383211
Material Copyright 2017-2020 by Timothy Middelkoop. Source code licensed under the Apache License, Version 2.0. Documentation licensed under CC by SA 3.0.
Enable students to utilize advanced computational and data capabilities for research and industrial practice through 1) proper project, code, and data management techniques; 2) wide range of research workflows to solve complex problems; 3) integration of optimization or other domain specific software tools; and 4) parallel computing on High Performance Computing clusters.
The objective of this course is to give students the skills, tools, and hands-on experience required to effectively utilize advanced computational and data capabilities for their research. Topics will include command line usage, source code revision management systems, relational and non-relational databases, message and data structures, web application programmer interfaces, computational engineering software, scientific and engineering workflows, data management, and the life-cycle of research projects. Tools include Git, Python, and R with domain specific tools.
“High Performance Computing: Modern Systems and Practices” by Maciej Brodowicz, Matthew Anderson, and Thomas Sterling, Elsevier Science, 2017. ISBN: 9780124201583
A secure shell client (ssh) is required. The following ssh clients are recommended:
- Local OnDemand client https://ondemand.rnet.missouri.edu for campus and vpn access.
- Chrome browser “Secure Shell” extension for Windows, Mac, and Chromebooks (https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo).
- MobaXterm for Windows, available in the "Software Center" and at https://mobaxterm.mobatek.net/
- Software Carpentry https://software-carpentry.org/lessons/
- HPC Carpentry https://hpc-carpentry.github.io/
- Git https://git-scm.com/book/en/v2
- Database design with UML and SQL, 4th edition http://web.csulb.edu/colleges/coe/cecs/dbdesign/
- Markdown https://docs.gitlab.com/ee/user/markdown.html
- JSON http://www.json.org/
- SQLite Tutorial http://www.sqlitetutorial.net/
- SQLite Reference https://www.sqlite.org/lang.html
- Python 3 Tutorial https://docs.python.org/3/tutorial/
- Python Reference https://docs.python.org/3/
- R Language https://www.r-project.org/
- R Tutorial http://www.cyclismo.org/tutorial/R/
- Julia Docs https://docs.julialang.org
- "OAC Vision & Blueprint: Overview and Computational Ecosystem" https://www.nsf.gov/cise/oac/vision/blueprint-2019/nsf-aci-blueprint-v10-508.pdf
- Roofline Model: https://crd.lbl.gov/departments/computer-science/PAR/research/roofline/
- Test Driven Development (TDD) http://www.agiledata.org/essays/tdd.html
- Test Driven Development: By Example by Kent Beck, Addison-Wesley, 2003. https://www.safaribooksonline.com/library/view/test-driven-development/0321146530 (available via MU library)