[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference noted::hackers_v1

Title:-={ H A C K E R S }=-
Notice:Write locked - see NOTED::HACKERS
Moderator:DIEHRD::MORRIS
Created:Thu Feb 20 1986
Last Modified:Mon Aug 03 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:680
Total number of notes:5456

493.0. "Change or replace the NULL process" by ZFC::DERAMO (Daniel V. D'Eramo) Wed Jun 10 1987 02:06

    Is it possible to change the NULL process on a uVMS 4.5 system?
    There is no file called *NULL*.* on my system disk.
    
    The goal is to replace the NULL process with a process that is doing
    something interesting.
    
    Dan
T.RTitleUserPersonal
Name
DateLines
493.1I calculated PI to many digitsSTAR::NOZELLMarc Nozell - VMS DevelopmentWed Jun 10 1987 02:3610
Why don't you $SUBMIT SOAK-CPU-TIME.COM a job that:

SOAK-CPU-TIME.COM
	$set proc/prio=1
	$run something-interesting.exe

-marc

(Remember to  check  on  the  CPU  usage  occasionally to make sure it's not
trashing the system!)
493.2KRAKAR::WARWICKDNA puts life into your networkWed Jun 10 1987 09:3311
    
    You can't actually get rid of NULL itself, it is assembled into
    the VMS exec. However, as Marc suggests, you can have a low priority
    process which will override NULL itself. 
    
    There was an interesting one posted in this file or the Toolshed quite
    a long time ago called NULLHANOI. It attempts to solve a large towers
    of Hanoi problem, and continually sets its process name to the current
    state. There is a copy of the files in KRAKAR::SYS$PUBLIC:.
    
    Trev 
493.3Re .1 -- It works! Thanks.ZFC::DERAMODaniel V. D'EramoWed Jun 10 1987 23:1532
     I tested the advice in .1 (see test file below).

     During the roughly one-half hour that the program was
     running, I worked on the system normally and did not notice
     any delays or anything slowing down.  MONITOR PROC/TOPCPU
     did not show NULL as active during this time.  So [except
     for NULL still being in the SHOW SYSTEM list] this will do
     everything I am looking for.

     My actual "background" process will be ready to go soon ....

     Thanks.

     Dan

SOAK-CPU-TIME.COM                   ! This was SUBMIT'd.
     $ set process/priority=1
     $ run test.exe

TEST.C                              ! A simple loop.
     int main(argc, argv)
     int argc ;
     char *argv[] ;
     {
     int i = 1000000001 ;

     while (--i != 0)
       ;
     }

<From the log file>
     Charged CPU time:     0 00:24:58.15   Elapsed time:     0 00:28:48.51
493.4I think there IS a difference52451::NITSANDuvdevani, DEC IsraelWed Jun 24 1987 07:1317
Correct me if I'm wrong:

Posting a low-priority process (other than the NULL process) which runs
in the background, spoils the [not-so-smart] load balancing algorithm,
if you use a cluster with terminal server(s).

The load balancing attempts to "equalize" the load on all cluster members.
The "load" is calculated by the amount of processes, and the CPU % BUSY TIME.

Any low-priority process (other than NULL) on one of the clsuter members,
especially a cpu-bound one (e.g., towers of Hanoi), makes the CPU to be
[almost] 100% busy, and the load balancing becomes wrong.

How can I overcome this problem (without putting artificial delays in the
low priority process)?

/Nitsan
493.5Load balancing - again...TALLIS::FISHERBattery, Mags, &amp; Gas Off!Thu Jun 25 1987 16:2327
re .4

You are wrong.
Having low priority process fixes the load balancing problem created
by the terminal servers.

Imagine a cluster of 14 CPU that runs many batch jobs thru the night.

By morning 12 CPUs are still processing long (many hour) batch jobs.
The terminal servers in their wisdom determine that all interactive
users should be logged into the only 2 nodes with null time.
First thing in the morning folks only read their mail and take a coffee
break so there is plenty of null time till about 10:00AM.
Mean while the low priority batch jobs are getting all the CPU time on
the other 12 CPUs.  Several folks have purposely ran low priority
compute bound jobs just to fix this problem.  In most places the correct
way to balance is by raw numbers.  If you have 14 CPUs then put
one person on each until the 15th person then start putting 2 on each, etc.

Null time without considering priorities is a big mistake.


              _!_      
Bye        ----O----   
Kay R. Fisher / \     

================================================================================
493.6tweak it yourself TOOK::HEFFERNANJonny Most For PresidentThu Jun 25 1987 17:215
Note:  In the future, you will have more control over the terminal server's
load balancing algorithm so you can tweek it yourself inside a program.
I think this is an area where you can't please everyone...

John