App and asynchronous processes

New Message Reply Date view Thread view Subject view Author view

From: kchan2++at++csc.com.au
Date: 01/02/2001 00:26:56


I have 4 CPUs on an onyx 2. App, cull and draw is locked down and isolated
on a CPU each. Isect, compute and dbase is forked and running on the other
CPU. I noticed from the timing graph that app for frame n + 1 will not
start until isect, compute and dbase for frame n has started. I am not
passing any data via pfPass<*>Data(). I understand that isect and cull
copies the scene graph and other data from the app process.

Do you expect app for frame n + 1 to wait until after compute and dbase for
frame n is started?

To avoid the app process waiting for an excessive period, my strategy is to
block the asynchronous processes as soon as it is started. Once the first
asynchronous process is blocked, the second asynchronous process will start
and so on. After all the asynchronous processes have started, pfFrame will
return in the app process and the asynchronous process will be "signalled"
to resume.

Is there a better strategy to overcome the problem?

I am currently sending CONT (from app to isect, compute and dbase) and STOP
(from isect, compute and dbase to itself) signals which yields a
satisfactory result. I have tried calling sginap(0) in the asynchronous
processes but other asynchronous processes doesn't start immediately some
of the time.

Is there a more suitable inter-process synchronisation mechanism than using
signals?

Platform Details:

IRIX 6.5.8
Onyx 2 4 R10k CPUs
Performer 2.2.8
MipsPro 7.2.1

Cheers...

Kenneth Chan
__________________________________________________

CSC
460 Pacific Hwy St Leonards NSW 2065
Ph: +61 2 9901 1165 Mobile: 0413 04 34 74 (+61 413 043474) Fax: +61 2
9901 1110
Email: kchan2++at++csc.com.au


New Message Reply Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 08:43:16 PST

This message has been cleansed for anti-spam protection. Replace '++at++' in any mail addresses with the '@' symbol.