AW: Two GPU-based workstation

From: Norman Geist (norman.geist_at_uni-greifswald.de)
Date: Mon Nov 04 2013 - 02:27:40 CST

 

Von: James Starlight [mailto:jmsstarlight_at_gmail.com]
Gesendet: Montag, 4. November 2013 08:52
An: Norman Geist; Namd Mailing List
Betreff: Re: namd-l: Two GPU-based workstation

 

Norman,

 

James,

thanks for suggestions! As I've noticed NAMD directory also consist of libcudart.so.4 as 've found in the VMDs dir which correspond to the 4.xx version of cudatools (I have installed cuda-5.00) Would it be the source of conflicts between older and newest nvidia drivers?

Usually not, and it’s anyway recommended to use the libcudart shipped with namd.

What are another advantageous to run namd via charmrun ? Does it possible to show time remained to the end of simulation ?

To understand this, you need to know that there are two main ways of how a parallelism can be implemented in a software. The 1st is “shared memory” the 2nd is “distributed memory”. The shared memory parallelism, also called “threading” usually uses one single process, using multiple cpu cores with threads (top shows a process using multiple 100 %). Usually it just runs iterations of loops that are mostly independent on different cores to speedup the software, instead of running them serially. The distributed memory parallelism uses multiple processes, doing predefined parts of the work in parallel while exchanging information over a network protocol. So if you have a multicore-only build of namd, without network support, you cannot run across multiple machines as they do not share the same memory. Moreover, both parallelization methods have advantages and disadvantages. Luckily, namd have two layers of parallelism using both methods. Usually using the distributed memory is faster for most applications but there can be some sweet spots on various platform using a mixture of both. For example running one process per cpu socket threading over all the cores of it, but that’s just theory.

I didn’t notice that you just use the multicore version. Possibly running a dedicated process per GPU will come with an advantage in speed and is worth to try. You will need a build with network support. As long as you stay on one node, you can easily run with++local to charmrun. For multiple nodes you will need a passwordless ssh login between the nodes and the mentioned runscript method.

 

So for one node, something like the following should show 2 processes, threading over the rest of the cores:

charmrun +p6 +ppn3 ++local namd2 +idlepoll +devices 0,1 your.config

Norman Geist

James

 

2013/11/4 Norman Geist <norman.geist_at_uni-greifswald.de>

The log file is what you see on the screen when starting namd like you did obviously. To get a file of it, append the command with >> my.log 2>> my.errors to redirect the output of stdout and stderr.

GPU load monitoring is only enabled on quadro and tesla series cards.

The easiest option to bypass the libcudart stuff is to use the charmrun ++runscript option. Save the following three lines to a file called runscript.sh in your namd folder and make it executable with "chmod +x runscript.sh", adapt the path to your namd location.

#!/bin/bash
export LD_LIBRARY_PATH=/your/namd/folder/:$LD_LIBRARY_PATH
$*

Now always start namd like "/your/namd/folder/charmrun +p6 ++runscript /your/namd/folder/runscript.sh /your/namd/folder/namd2 +idlepoll +devices 0,1 >> log 2>> errors"

Norman Geist.

> -----Ursprüngliche Nachricht-----

> Von: owner-namd-l_at_ks.uiuc.edu [mailto:owner-namd-l_at_ks.uiuc.edu] Im
> Auftrag von James Starlight

> Gesendet: Sonntag, 3. November 2013 15:04

> An: Ajasja Ljubetič; Namd Mailing List

> Betreff: Re: namd-l: Two GPU-based workstation
>

> Its strange but no log file is found in the work directory and I could
> not
> find a suitable option in the conf file for the log saving. :) Almost
> that I have its the 645000 steps computed during 6 hours of simulation
> (100k atoms protein in explicit water)
> Also I'd be thankful for list of all possible swithes accompanied with
> the
> namd2 terminal command
>
> James
>
>
>
>
> 2013/11/3 Ajasja Ljubetič <ajasja.ljubetic_at_gmail.com>
>
> >
> > On 3 November 2013 09:38, James Starlight <jmsstarlight_at_gmail.com>
> wrote:
> >
> >> updating
> >>
> >> using namd2 +idlepoll +p4 +devices 0,1 ./restart.conf
> >> I've launched simulation on both GPUs (according to thermal
> monitoring in
> >> nvidia-settings) but only half of cpus were fully loaded.
> >>
> >> Yes, naturally. Look up what the +p4 switch does. (Also read up on
> > hyperthreading)
> >
> > By the way how I could monitor real GPU loading as well as namd
> >> performance ( in ns\days or GFlops )?
> >>
> >
> > Try looking in the namd log file for the ns/days speed.
> >
> > And out of interest do report the ns/day of
> >
> > namd2 +idlepoll +p6 +devices 0 ./restart.conf
> > vs
> > namd2 +idlepoll +p6 +devices 0,1 ./restart.conf
> >
> > Regards,
> > Ajasja
> >
> >
> >>
> >>
> >> James
> >>
> >>
> >> 2013/11/1 James Starlight <jmsstarlight_at_gmail.com>
> >>
> >>> Ok. I'll try to make some simulations of this configure. The main
> issue
> >>> with which I can force is the possible conflict between that older
> cuda
> >>> library (used from vmd) and more newest development driver ( 5.5
> version)
> >>> which comes from installed cuda-5.5.
> >>>
> >>> By the way how I could use both of the GPUs simultaneously ? Just
> use
> >>> the below command?
> >>>
> >>> namd2 +idlepoll +p4 +devices 0,1 ./restart.conf
> >>>
> >>> Where 0 and 1 are the ids of my GPUs? Is there additional options
> for
> >>> synchronization of the simulations in dual-GPU regime ?
> >>>
> >>> James
> >>>
> >>>
> >>> 2013/10/31 Aron Broom <broomsday_at_gmail.com>
> >>>
> >>>> don't replace anything, just point to the version of the library
> in
> >>>> your NAMD directory as you did. It should work fine.
> >>>>
> >>>>
> >>>> On Thu, Oct 31, 2013 at 1:24 PM, James Starlight <
> >>>> jmsstarlight_at_gmail.com> wrote:
> >>>>
> >>>>> Dear Namd users,
> >>>>>
> >>>>> I've build my new workstations consisted of two Titans with i6
> (linux
> >>>>> recognize it like 12 core process but actually it consist of 6

> nodes)=

 

This archive was generated by hypermail 2.1.6 : Wed Dec 31 2014 - 23:21:51 CST