Readings:
Class Syllabus:
Algorithm Fridays:
Computers:
Requirements
Setting up your work environment
The course uses SciPy, and combination of the Python language with a collection of libraries written for scientific and financial applications. In particular, we will use,
As well, we will be using the Jupyter notebook software, a front end to a compute kernels that combines a python workspace with integrated markdown documentation.
Most of the libraries you will install on your work computer using the Anaconda installation software. This program will install the entire stack: python, scipy libraries, and jupyter notebook, in a simple manner.
Note: On Windows I had a failure to install Jupyter on my first attempt. I reinstalled using 32-bit for all users and Jupyter was installed.
Windows users are welcome, however the Microsoft platform lacks many of the unix development tools familiar to computer scientists. The Cygwin project brings all of the unix environment to Windows. In particular, a full shell, gnu compiles, Make and (above all) subversion are available after installing Cygwin.
Follow the default install, and once done, return to the Cygwin
and this time select specific installs. Under developer, find the line labeled simply subversion and
click that to change the icon from "keep" to "install". You should also install
When you open a Cygwin shell, you are in a home directory distinct for your Windows home directory.
Your Windows home directory is located in the Cygwin file hierarchy under /cygdrive/c/Users/_username_.
Note: I found installing 32-bit explicitly worked better. If you plan to use Jupyter
then it might be easier to have the subversion pull into the Windows home directory, as this is the
default Jupyter home.
Whether you are on a linux machine, Windows, or OSX, you can now open a terminal and run "jupyter notebook"
(except Windows, where the install recommends you start from an icon).
You will need understand and use subversion. Subversion connects a folder on your computer with a
remote repository. The repository maintains a history of "commits", where you push your
changes to the repository. Subversion and git are both source code control systems, and to
an novice they are similar to Dropbox. However, they are much more serious in the handling of
versions and in the coordination of updates.
Please get started with subversion by reading my tutorial. You will receive
instructions for checking out your view of the repository by email, once you have sent me
your C-number and Cane email address.
[burt@sickles deviceQuery]$ make run
./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: "Tesla P100-PCIE-16GB"
CUDA Driver Version / Runtime Version 9.0 / 8.0
CUDA Capability Major/Minor version number: 6.0
Total amount of global memory: 16276 MBytes (17066885120 bytes)
(56) Multiprocessors, ( 64) CUDA Cores/MP: 3584 CUDA Cores
GPU Max Clock rate: 1329 MHz (1.33 GHz)
Memory Clock rate: 715 Mhz
Memory Bus Width: 4096-bit
L2 Cache Size: 4194304 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 4 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
Device 1: "Tesla P100-PCIE-16GB"
CUDA Driver Version / Runtime Version 9.0 / 8.0
CUDA Capability Major/Minor version number: 6.0
Total amount of global memory: 16276 MBytes (17066885120 bytes)
(56) Multiprocessors, ( 64) CUDA Cores/MP: 3584 CUDA Cores
GPU Max Clock rate: 1329 MHz (1.33 GHz)
Memory Clock rate: 715 Mhz
Memory Bus Width: 4096-bit
L2 Cache Size: 4194304 bytes
Maximum Texture Dimension Size (x,y,z) 1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
Maximum Layered 1D Texture Size, (num) layers 1D=(32768), 2048 layers
Maximum Layered 2D Texture Size, (num) layers 2D=(32768, 32768), 2048 layers
Total amount of constant memory: 65536 bytes
Total amount of shared memory per block: 49152 bytes
Total number of registers available per block: 65536
Warp size: 32
Maximum number of threads per multiprocessor: 2048
Maximum number of threads per block: 1024
Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximum memory pitch: 2147483647 bytes
Texture alignment: 512 bytes
Concurrent copy and kernel execution: Yes with 2 copy engine(s)
Run time limit on kernels: No
Integrated GPU sharing Host Memory: No
Support host page-locked memory mapping: Yes
Alignment requirement for Surfaces: Yes
Device has ECC support: Enabled
Device supports Unified Addressing (UVA): Yes
Device PCI Domain ID / Bus ID / location ID: 0 / 130 / 0
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
> Peer access from Tesla P100-PCIE-16GB (GPU0) -> Tesla P100-PCIE-16GB (GPU1) : No
> Peer access from Tesla P100-PCIE-16GB (GPU1) -> Tesla P100-PCIE-16GB (GPU0) : No
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.0, CUDA Runtime Version = 8.0, NumDevs = 2, Device0 = Tesla P100-PCIE-16GB, Device1 = Tesla P100-PCIE-16GB
Result = PASS
Complete documentation on Subversion is available online.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.