Virtual OpenCL aka VCL for GPUs

Message boards : Number crunching : Virtual OpenCL aka VCL for GPUs
Message board moderation

To post messages, you must log in.

AuthorMessage
Greg Tippitt
Volunteer tester

Send message
Joined: 19 Apr 04
Posts: 24
Credit: 20,455,837
RAC: 39
United States
Message 1616402 - Posted: 19 Dec 2014, 19:21:52 UTC

Does anyone know if SETI AP for GPU will work with Virtual OpenCL for LINUX aka VCL?

http://www.mosix.cs.huji.ac.il/txt_vcl.html

I have a 160 core CPU cluster on which I run BOINC projects when it's otherwise idle (and the weather is cool). I'm thinking of installing the Virtual OpenCL software to allow me to cluster its 4200 GPU cores as well, but I don't want to install it, if it will break my BOINC NVIDIA GPU projects.

In my searches, the only mention of VCL and BOINC I've found was a short discussion on here last May, about a guy with a "25 GPU monster" using VCL on which he cracked passwords. I didn't want to waste my time trying VCL if it's already known to not work with BOINC.

In the VCL FAQ, I found an item that is suspicious. It says that the "cl_khr_icd" OpenCL extension is not supported at this time. In the BOINC_DEV mail archives, I've found a bunch of messages from Eric K about "cl_khr_icd" in regards to problems with the Nvidia CUDA drivers and OpenCL. A GREP of the XML files in my BOINC data folder also found numerous references to "cl_khr_icd", so I'm fairly sure that BOINC will not access virtual GPUs using VCL, just as the BOINC client on the cluster head cannot access the CPUs on the cluster nodes.

What I don't know, is if I install VCL for running my own OpenCL apps running on clustered virtual GPUs, will that break the GPU tasks run by the BOINC client running on the individual nodes. I can run my MPI CPU applications across the cluster, while the BOINC clients on each node runs CPU tasks, and I would like to do the same with GPU applications if possible.


Any and all help is appreciated.

Greg
ID: 1616402 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1616437 - Posted: 19 Dec 2014, 21:16:52 UTC - in response to Message 1616402.  
Last modified: 19 Dec 2014, 21:17:45 UTC

First of all could you say what GPUs incorporated into your cluster? Are they all nVidia ones or ATi ones included too?

I would not sure that OpenCL spanning across separate hosts will be effective (I did not look link you posted so far to know what virtual OpenCL is about so gues for now).
Can your cluster do CUDA SETI tasks currently? How it recognized by BOINC?

Even if BOINC itself would not recognize OpenCL in your case we can try to overcome this (SETI used OpenCL apps before BOINC supported it and CUDA apps before BOINC supported it too so nothing new to us :) ), but your will to experiment required.

i'll look what is VCL about then try to come with more precise options. For now try to answer my questions, please.
ID: 1616437 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1616439 - Posted: 19 Dec 2014, 21:21:01 UTC

I see few hosts like this one under your account:

AuthenticAMD
Six-Core AMD Opteron(tm) Processor 8431 [Family 16 Model 8 Stepping 0]
(23 процессоров) NVIDIA Tesla T10 Processor (4095MB) OpenCL: 1.0

Is it one of hosts included in your cluster?
ID: 1616439 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1616441 - Posted: 19 Dec 2014, 21:31:16 UTC

Ok, read a little about VCL and see no use of it for current SETI applications and data model.

Currently most openCL applications make no use of multiple
devices. Most such unmodified applications will run correctly
on VCL, but the full benefits of VCL manifest with parallel
applications that can use multiple devices concurrently.


SETI apps (both OpenCL and CUDA) use single device per process per task. That is, multiple devices requires multiple separate tasks and separate system processes to work with them. VCL add ability to treat remote devices as local ones, but this doesn't needed by SETI, it will not use more than 1 device per tasl not matter how many devices in single PC. And it's more effective to run those separate tasks locally on each of hosts in your cluster. Each such host can run many tasks at once, including many GPU tasks too provided few GPUs are installed.

Virtualization of OpenCL remote devices would help only if one big multi-device OpenCL app works on very big weakly bound data massive. not the case for SETI apps.
ID: 1616441 · Report as offensive
Greg Tippitt
Volunteer tester

Send message
Joined: 19 Apr 04
Posts: 24
Credit: 20,455,837
RAC: 39
United States
Message 1616731 - Posted: 20 Dec 2014, 19:51:19 UTC

My cluster has 7 nodes using Supermicro H8QME and H8QM3 motherboards. Each motherboard has 4 AMD Opteron 8431 hex core CPUs with 16+ GB ram. Each motherboard has a NVIDIA Tesla M1060 GPU board with 4GB of ram as well. It is running Ubuntu 14.04 LTS Server.

I am sorry that my post was confusing. I am not so much interested in running SETI on the VCL cluster software as co-existing with it. I have the BOINC client installed on all of the cluster nodes to run BOINC CPU and GPU projects when I'm not using the cluster.

I am wanting to use the VCL software for a project of my own that is not using BOINC. I've been testing some OpenMPI and OpenCL stuff, and now I want to try some stuff than uses all of the GPUs and CPUs together. I was curious if anyone had tried the VCL and knew if it conflicted with SETI or BOINC GPU apps in general. If the VCL is likely to conflict with SETI or other BOINC GPU tasks, I wanted to set up things to easily swap between running BOINC or my own cluster apps. Using the BOINC Exclusive apps config, it is easy to have BOINC apps stop and leave the cluster idle, but making sure I don't foul things up so badly that BOINC apps won't run is bit more of a challenge. I was good at breaking things for many years before I learned to program.

I want to make sure that my other testing does not foul up things for the BOINC tasks for which it runs work. Each cluster node boots from it's own USB flash drive that is a fairly basic install of Ubuntu, and then loads other stuff they need from a file server using NFS and iSCSI mounts from my file server. After thinking overnight, I remembered why I had quit using PXE booting of the nodes and began using USB flash drives for booting. With PXE booting, it was too easy for me to foul thinks up so that nothing worked.

I've decided to simply have 2 USB drives for each of the 7 nodes. I can have one that boots a minimal BOINC configuration and another with a non-BOINC cluster config with OpenMPI, VCL, etc. That way no matter how badly I foul things up testing, I can power down and swap flash drives for each of the nodes and bring them back up with the clean config for BOINC. Similar to the old Kermit "never underestimate the bandwidth of a station wagon full of tapes", I should never underestimate the flexibility of a shoe box full of flash drives. This has the added advantage that I can leave most of the nodes running BOINC while I test the cluster on 2 nodes and not interrupt BOINC tasks until I'm ready to test on the full cluster.

Thanks, sometimes explaining a problem to somebody helps me find my own solution that I couldn't think of before.

Greg
ID: 1616731 · Report as offensive
Profile Raistmer
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 16 Jun 01
Posts: 6325
Credit: 106,370,077
RAC: 121
Russia
Message 1616734 - Posted: 20 Dec 2014, 20:02:48 UTC - in response to Message 1616731.  

Don't think it would break local node setup, most probably it's just another level onto existing local OpenCL runtime and use it for kernel launches on particular device. But to test this assumption only on 2 nodes instead of all is good idea.
ID: 1616734 · Report as offensive

Message boards : Number crunching : Virtual OpenCL aka VCL for GPUs


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.