Skip to main content

Computational Skills for Researchers (CSR)

Research Computing Services offers workshops on programming, data analysis, and other technical skills for Northwestern researchers.

All members of the Northwestern research community are welcome. There is no cost to attend most sessions, but registration is required. Workshops are in Mudd Hall on the Evanston campus unless otherwise noted.  Intro to Quest is held quarterly.

 

Upcoming Workshops

Intro to Quest

July 13, 2018, 10am-12pm, Mudd Hall Rm 2210
Instructor: Alper Kinaci, Senior Computational Specialist

New to Quest or looking to improve your familiarity with it? Come get an overview of the system, learn how to submit jobs, and get familiar with best practices. All researchers are welcome to attend, but you'll need an active Quest allocation to participate interactively, which will help you get the most out of the workshop. See the About Quest page for more information on getting an allocation. If you're not familiar with the command line, we recommend you complete at least chapter 1 of DataCamp's Introduction to Shell for Data Science free course before the workshop, or attend the Intro to the Command Line workshop on July 11th. Please bring your own laptop.
Register.
 
 

Select Past Workshops

Intro to the Command Line

This workshop will teach you how to use a command line terminal with the Bash shell to list, access, create, move, and copy directories and files on your computer or a remote system. These skills are essential for users accessing remote systems like Quest or installing open source software and packages on their own systems. Please bring your laptop to follow along; software installation instructions for Windows users will be provided prior to the workshop. 

 

Intro to Quest

New to Quest or looking to improve your familiarity with it? Come get an overview of the system, learn how to submit jobs, and get familiar with best practices. All researchers are welcome to attend, but you'll need an active Quest allocation to participate interactively, which will help you get the most out of the workshop. See the About Quest page for more information on getting an allocation. If you're not familiar with the command line, we recommend that you also take the Intro to the Command Line workshop on January 18th. Please bring your own laptop. 

 

Intro to vi/vim

vi and its successor vim (vi iMproved) are a powerful command line text editors used in Unix environments. According to Stack Overflow 2016 survey*, vim is the first choice of Data Scientists among development environments. Being a modal editor, different tasks are accomplished within different modes in vi/vim. This may seem complicated in the beginning but frequent users do not even need to take their hands off the keyboard while editing text or coding. All researchers who are editing texts and coding in their daily routine are welcome. Please bring your laptop to follow along; software installation instructions for Windows users will be provided prior to the workshop. 

 

Intro to d3

Data isn't very powerful if you don't have an audience to share it with. This is why d3.js (a JavaScript library) is the most important tool for building fully customizable, web-facing visualizations. D3 makes your data as accessible, interactive, and visually-driven as any webpage. Contrary to other tools or frameworks, d3 is not a microwavable meal but more of a cookbook and a kitchen full of ingredients. Due to the expertise necessary to get started using d3, this is a two-part workshop with attendance limited to 15 participants. The first workshop will focus on learning the basics of d3 and what makes it so powerful, along with a hands-on portion building your first graph. Following off of this, the second workshop is primarily hands-on, where users will be expected to solve a difficult visualization problem using d3 (so attendance at both is strongly encouraged). Please bring your own laptop and ensure you have the latest version of Chrome installed. You will need a text editor as well, such as Sublime, Atom, Notepad++ or equivalent.

 

MPI/OpenMP

OpenMP (Open Multi-Processing) and MPI (Message Passing Interface) are two standard approaches to parallelize codes. OpenMP provides parallelism within a multi-core node and MPI offers intra- and inter-node parallelization. This introductory workshop will focus on the fundamental concepts of parallel computing using these two methods. Topics will include distributed versus shared memory computing, constructing parallel regions, domain decomposition and avoiding race conditions.  The workshop will include examples of using MPI with Python. This workshop assumes you're comfortable writing at least basic Python code.

 

Data Visualization with Python

Are you using Python to analyze data? Then learn how to visualize it with the matplotlib plotting library. The pandas data analysis library has built-in support for matplotlib, but matplotlib works with other analysis libraries and data structures too. We'll work through examples of several different types of plots, learn how to change styles and options, and talk about resources for learning to create professional plots on your own. This workshop assumes you're comfortable writing at least basic Python code. 

 

Introduction to MPI and mpi4py for Distributed Computing on Quest

Do you want to learn how to parallelize your code to use the cores or memory of more than one node in a cluster? Did you know you can do this without Fortran or C++? Message Passing Interface (MPI) is a standard that allows researchers to leverage the computing resources of clusters like Quest to execute compute-intensive and memory-intensive code across nodes. Mpi4py provides an implementation of MPI for Python. We will be reviewing the basic ideas behind MPI, such as communication and distributed memory, and then work through Python examples that demonstrate how to incorporate the mpi4py interface in your work. All researchers are welcome to attend, but some familiarity with Python required. Please bring a laptop with an SSH client (terminal program) installed. Participants will be provided with temporary access to Quest for the workshop.

 

Introduction to Julia

Julia is a high-level, high-performance dynamic programming language for numerical computing. Despite being a relatively new language, it inherits many great features from existing languages and combines them into one. It’s easy emulate dynamic languages such as Python or Perl, while achieving speed comparable to C. It has highly efficient base libraries and community contributed packages for scientific computing and statistics just like MATLAB or R, but with better support for parallelism and distributed computation. Whether you prefer interpreted or compiled languages, Julia is worth a try to see the best of both worlds. Please bring your laptop to follow along; further instructions will be provided prior to the workshop.

Last Updated: 19 June 2018

Get Help Back to top