From: Gengbin Zheng (gzheng_at_ks.uiuc.edu)
Date: Sun Jan 04 2004 - 16:23:27 CST
On Sun, 4 Jan 2004, Gadi Oron wrote:
> Hello again...
> On Fri, 2004-01-02 at 20:09, Gengbin Zheng wrote:
> > > > > Another question: is it possible to set process priority (nice
> > > > > for NAMD node programs?
> > > > >
> > > >
> > > > No. It can be implemented but not for windows I guess.
> > > >
> > You can now. This has been implemented in Charm++ CVS server.
> > It is only for non windows versions.
> Thank you very much, this option is very helpful!
> I believe though that with Cygwin the your implementation should be
> functional. (The nice command exists).
ok, Windows version of setting process priority (using SetPriorityClass
Win32 call) is also implemented. It should work for both Cygwin(gcc) and
pure windows(visual c++) binary.
Since windows does not support numeric nice level - it only
has these 6 levels (from high to low), I had to do a mapping from +nice
parameter value to the win priority levels:
REALTIME_PRIORITY_CLASS <= -20
HIGH_PRIORITY_CLASS -20 - -10
ABOVE_NORMAL_PRIORITY_CLASS -10 - 0
BELOW_NORMAL_PRIORITY_CLASS 0 - 10
IDLE_PRIORITY_CLASS > 10
Note that not every Windows supports ABOVE_NORMAL_PRIORITY_CLASS and
BELOW_NORMAL_PRIORITY_CLASS for example win95/ME. So when not supported,
the value will be overtaken by corresponding IDLE_PRIORITY_CLASS or
Again, you may need administrator privilege to set high priorities.
Same as explained in previous email, to set priority nice level, you can:
1. ./charmrun +p4 ./pgm +nice -5
to set nice level to -5 (higher priority) for all 4 node processes.
This works for *all* charm/NAMD version now.
2. put ++nice in a nodelist file:
host host-1 ++nice 2
host host-2 ++nice -2
This only works for net-* version when nodelist is read.
My test shows that setting very high priority under windows do have
noticeable good impact in the execution time.
The latest NAMD win32/VC++ binary for testing is now at:
It is compiled with Charm++/net-win32 with -O -DCMK_OPTIMIZE
and NAMD/Win32-i686-MSVC with tcl and plugins libraries.
The VC++ I was using to compile the binary donot have
BELOW_NORMAL_PRIORITY_CLASS and ABOVE_NORMAL_PRIORITY_CLASS defined, so
these two priorities are not supported in this binary.
(for cross linux/windows clusters usage, please note that you need exact
same charm++ source code from cvs, also with exact *Charm++ defined
macros* - that is with or without -DCMK_OPTIMIZE, binaries with
CMK_OPTIMIZE is not compatible with the one compiled without the flag
when running cross the platforms.)
This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:38:20 CST