Niks Technology Workshop on Software Development
Environment for Science & Engineering Applications
Software Development Workshop
This workshop will focus on the set of software tools
(editors, compilers, debuggers, optimization tools, etc.) needed to develop
applications for petascale and beyond computers as well as the numerical and
communications libraries, programming languages, and software engineering practices
needed by the scientists and engineers to develop these applications. In particular,
the workshop will consider the feasibility of developing an integrated software
development environment for science and engineering applications, similar in
concept, although not in detail, to the IDEs used in the commercial world. Such an
environment would transform the development, debugging, optimization, deployment and
execution of scientific and engineering applications on parallel computers, ranging
from the scientist's multicore personal computer to the most sophisticated NSF- and
DOE-funded high-performance computing systems.
Git is today’s premier version control repository and an important collaboration
tool for software development organizations because of its ease of use, facilitation
of code review, and flexible branching model.
In this deep-dive workshop, we’ll show you how to use the most important Git
functions effectively in both the command line and RubyMine IDE. We’ll show you how
to initialize, commit, branch, merge, and share repositories with others. We’ll look
at the Github and Bitbucket cloud repo services and examine web flow, pull requests,
resolving code conflicts, and deployment systems. We’ll also discuss some best
practices for enterprise-level code teams.
This workshop will provide a solid understanding of why distributed version control
systems are an essential part of any development effort, and equip you with skills
to effectively apply Git to your everyday work.