Closed jowens closed 6 years ago
@jowens @neoblizz Sounds like an hour work for me. I'd be happy to contribute in my spare time. Let me know if needed. I'm sure this will help other users/developers to get started with Gunrock much easier.
This will be a big help Yuduo, if you have some time on your hands! 😊
On Thu, Jul 12, 2018, 5:44 PM Yuduo Wu notifications@github.com wrote:
@jowens https://github.com/jowens @neoblizz https://github.com/neoblizz Sounds like an hour work for me. I'd be happy to contribute in my spare time. Let me know if needed. I'm sure this will help other users/developers to get started with Gunrock much easier.
— You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/gunrock/gunrock/issues/349#issuecomment-404692340, or mute the thread https://github.com/notifications/unsubscribe-auth/AJVlGd0Pxl8-jLbKhTcRyHhQQqmkmRnYks5uF-2GgaJpZM4U9QtA .
-- Muhammad Osama Graduate Student Department of Electrical and Computer Engineering University of California, Davis
Cool. Any specific requirements? I guess we want ubuntu16.04 + CUDA 9.1 + boost 1.58?
I have also tested everything on CUDA 9.2. And that should do it for master/dev branch at least. In a later release boost is optional.
On Thu, Jul 12, 2018, 6:21 PM Yuduo Wu notifications@github.com wrote:
Cool. Any specific requirements? I guess we want ubuntu16.04 + CUDA 9.1 + boost 1.58?
— You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub https://github.com/gunrock/gunrock/issues/349#issuecomment-404697386, or mute the thread https://github.com/notifications/unsubscribe-auth/AJVlGf5_QTqLMlTUspQaX1HB5VbJlZOlks5uF_YvgaJpZM4U9QtA .
-- Muhammad Osama Graduate Student Department of Electrical and Computer Engineering University of California, Davis
@1duo this is super awesome. Um, just for all of us who don't know this, tell us why a container is good and what's going on here. I simply don't know squat about containers. I am so happy you're doing this. But I want to know why it's good for us. :)
@jowens My understanding: for Gunrock, it mostly helps users/developers to get started faster and easier.
Infrastructure agnostic: no matter you have macOS, Linux (Ubuntu, CentOS, etc.), or Windows. Anyone has NVIDIA GPU(s) and driver installed (docker, with NVIDIA plugin, needs to mount both devices and drivers into containers), can run Gunrock easily.
No need to install dependencies on host machine: packages are pre-installed/configured in docker images (you select a docker image when docker run
). you don't need to install CUDA/Boost/METIS and any other dependencies on host machine (good for people want to try Gunrock but lazy to install/switch OS/dependency versions). Configure once in Dockerfile, update if necessary, then and simply docker run
, you'll get all packages.
Consistent environment: Dockerfile freezes OS and software versions. You'll guaranteed to have same software versions and easily switch/test them simply changing containers (good for CI/CD and tests). For example, you can have Gunrock docker image for CentOS7 + CUDA9.1 + Boost1.58
, in the meantime, another docker image for Ubuntu18.04 + CUDA9.2 + Boost1.64
, etc. No longer needs two different physical/virtual machines. Run tests on different environment as easy as run two different processes. See here, I have two environments. Only difference is the base image, docker are layered, here I initiated from nvidia/cuda
docker image maintained by NVIDIA, I simply adding dependencies layer (apt-get
s) and Gunrock layers (git clone and compile) on top of it.
Unlike VM, almost no performance impact: from this IBM paper:
Docker is nearly identical to Native performance and faster than KVM in every category.
Plus, many other benefits that might not be necessary for researchers and developers, but it's essential for production environment. Say we want to deploy Gunrock in production. Host machine may have many different services/applications, each might need different OS/software versions. Have to use docker to make then co-exist on the same host. Several I can think of at this moment, might be more.
...
In my work, I have to deal with workloads/libraries that have much more dependencies than Gunrock. So using docker is a must. Otherwise, too painful and time-consuming to deal with deployment / task scheduling.
We should make a Docker container for Gunrock.
Not assigned yet, but something we ought to / need to do.