Puget Systems HPC Blog
How-To Setup NVIDIA Docker and NGC Registry on your Workstation - Part 5 Docker Performance and Resource TuningWritten on February 23, 2018 by Dr Donald Kinghorn
This should be the last post in this series dealing with the Docker setup for accessing the NVIDIA NCG Docker registry on your workstation. There are a couple of configuration tuning changes that you may want to make. These will improve performance and ensure that you have proper system "user limit" resources to handle large application and job runs with docker.
This post will go through how to get access to the NVIDIA NGC container registry on your workstation. The first 3 posts in this series gave instructions on how to install and configure a base Ubuntu 16.04 workstation system with Docker and NVIDIA-Docker for a usable work-flow. With that taken care of we can get setup to use the many useful docker images in the NGC container registry for your local system.
In this post I'll go through setting up Docker to use User-Namespaces. This is a very important step to achieving a comfortable docker work-flow on a personal Workstation. I will show you how to configure Docker so that instead of files and processes being owned by root they will be owned by your personal user account. This will make using Docker containers on your system safer and feel much the same as a "normally" installed application.
How-To Setup NVIDIA Docker and NGC Registry on your Workstation - Part 2 Docker and NVIDIA-Docker-v2Written on February 2, 2018 by Dr Donald Kinghorn
This post will build on top of the base systems setup described in Part1. We will go through installing,configuring and testing Docker and NVIDIA-Docker version 2.
How-To Setup NVIDIA Docker and NGC Registry on your Workstation - Part 1 Introduction and Base System SetupWritten on January 26, 2018 by Dr Donald Kinghorn
One of my New Years resolutions was to adopt a Docker based workflow. I had also promised in my recent post on testing the Titan V that I would do a series of How-To's on setting up docker and ultimately configuring and using the excellent NVIDIA NGC docker registry. This is the fist post of that series and covers the base system setup, motivation and references.
In this post I'll be going over details of Installing Ubuntu 16.04 including the NVIDIA display driver and, optionally, NVIDIA CUDA. I have found the method presented here to be the most likely to succeed no matter what hardware configuration you are installing onto.
The Intel CPU flaw and the Meltdown and Spectre security exploits are causing a lot of concern. There is a possibility of application slowdown from the kernel patches to mitigate the exploits. This slowdown concern is a concern for GPU accelerated application because of the systems calls they require for moving data between CPU and GPU memory space. I did some testing on a couple of large Tensorflow and Caffe machine learning jobs along with the creation of a LMDA database from 1.3 million images.
New Years resolutions are notorious for being overly ambitious, vague, and quickly forgotten.But, I'm not going to let that stop me from making some! In order to keep myself from forgetting what I resolve to do I'm going to write them down in public! These are my resolutions for when I'm wearing my System Administrator and Developer hats.
I've been exposed to enough computing "teasers" in 2017 that I feel I can stick my neck out a little and make some predictions for 2018. Some of these are pretty wild i.e. unlikely but I want to put them out there anyway.
NIVIDA announced availability of the the Titan V card Friday December 8th. We had a couple in hand for testing on Monday December 11th, nice! I ran through many of the machine learning and simulation testing problems that I have done on Titan cards in the past. Results are not the near doubling in performance of past generations... but read on.
The new Intel core-i9 and core-i7 "enthusiast" "X", Skylake-X processors and the single socket Xeon Skylake-W (Workstation) processors seem nearly identical. I'll discuss the differences and make my recommendation on which to use.
Intel Purley platform, Skylake-SP, Xeon "Scalable" processors (Platinum, Gold, Sliver, Bronze) are here. All 58 of them! Hopefully this post will help you to decide which of these (excellent) processors may be of use for your applications. I trim the list do to just a few of my favorites and break them down by use-case.
ARM for HPC? Supercomputers using ARM processors? Yes! I was at SC17 last week and ARM was a hot topic. There are new ARM processor designs that are fully competitive with Intel and AMD CPU's for high performance computing.
Which Intel CPU is for heavy numerical compute workloads, Skylake-X core i7 7800X or Coffee-Lake core i7 8700K? They are priced nearly the same. The 8700K has high core clock frequencies and good power management but the 7800X has AVX-512. I show you which one comes out on top using an Intel optimized Linpack benchmark.
Intel Core-i9 7900X and 7980XE are very good desktop processors for mathematical computing workloads. This post is a short listing of results for the Linpack benchmark which is still my personal favorite CPU performance metric.
I can't think of of trending field of scientific research that has ever been better suited for "beginners" than Machine Learning and AI. Even though the field has been around for decades it feels like day one. There is now a perfect convergence of resources to facilitate the learning and doing of Machine Learning.
The post will implement Multinomial Logistic Regression. The multiclass approach used will be one-vs-rest. The Jupyter notebook contains a full collection of Python functions for the implementation. An example problem done showing image classification using the MNIST digits dataset.
This post will be mostly Python code with implementation and examples of the Logistic Regression theory we have been discussing in the last few posts. Examples include fitting to 2 feature data using an arbitrary order multinomial model and a simple 2 class image classification problem using the MNIST digits data.
In this post I'll discuss evaluating the "goodness of fit" for a Logistic Regression model and do an implementation of the formulas in Python using numpy. We'll look at an example to check the validity of the code.
In this post I will look at "Regularization" in order to address an important problem that is common with implementations, namely over-fitting. We'll go through for logistic regression and linear regression. After getting the equations for regularization worked out we'll look at an example in Python showing how this can be used for a badly over-fit linear regression model.
Logistic regression is a widely used Machine Learning method for binary classification. It is also a good stepping stone for understanding Neural Networks. In this post I will present the theory behind it including a derivation of the Logistic Regression Cost Function gradient.
This will be the last post in the Linear Regression series. We will look at the problems of over or under fitting data along with non-linear feature variables.
In this post I will present the matrix/vector form of the Linear Regression problem and derive the "exact" solution for the parameters.
In this post I'll be working up, analyzing, visualizing, and doing Gradient Descent for Linear Regression. It's a Jupyter notebook with all the code for plots and functions in Python available on my github account.
In Part 3 of this series on Linear Regression I will go into more detail about the Model and Cost function. Including several graphs that will hopefully give insight into the their nature and serve as a reference for developing algorithms in the next post.