Thread View: comp.sys.transputer
1 messages
1 total messages
Started by UHAP033
Thu, 10 Aug 1989 14:38
Measuring elapsed CPU time for a single process
Author: UHAP033
Date: Thu, 10 Aug 1989 14:38
Date: Thu, 10 Aug 1989 14:38
85 lines
3435 bytes
3435 bytes
Hello all,
I am currently working on an image processing simulation program
that requires a single process on a transputer to determine how much CPU time
it has had (but not that of any other processes in parallel with it)
ie:
PRI PAR
PAR
... pass data down
... pass data up
... wait for a known time -- this it the problem bit
My current process looks something like (slightly simplified):
BOOL not.yet.finished:
TIMER clock:
INT pause.1,pause.2,elapsed.time:
SEQ
not.yet.finished:= TRUE
clock ? pause.1
WHILE not.yet.finished
SEQ
clock ? pause.2
elapsed.time:= pause.2-pause.1
not.yet.finished:= (elapsed.time<required.delay)
However, this doesn't do what I want - it keeps counting time even when the
transputer is executing another process. Two possible alternatives came to
mind:
1) Write a simple loop program, disassemble it and work out how long the
loop would take. Then use something like
INT required.iterations,dummy.variable:
SEQ
required.iterations:= required.delay*kludge.factor
SEQ loop = 1 FOR required.iterations
dummy.variable:= dummy.variable*1 -- time waster
Unfortunately, I know nothing about transputer machine code, and so wouldn't
know how to find out the time taken per iteration of the loop.
2) Since the clock's tick rate for a low-priority process is quite slow
(64 microseconds according to the TDS book* page 60), it might be possible
to count the ticks of the clock (the count being missed if the process is
interrupted by a higher priority one), thus
INT elapsed.time,tick.1,tick.2:
BOOL not.yet.finished:
TIMER clock:
SEQ
not.yet.finished:= TRUE
elapsed.time:= 0
WHILE not.yet.finished
SEQ
clock ? tick.1
clock ? tick.2
WHILE tick.1=tick.2
clock ? tick.2
elapsed.time:= elapsed.time+64 -- microseconds
not.yet.finished:= (elapsed.time<required.delay)
But this is not elegant, and isn't very accurate either.
Has anyone got any comments on these two schemes, or do they have a better
one? Thanks for any help you can give
Simon Barker
* Transputer Development System, Prentice Hall, 1988, ISBN 0-13-928995-X
--------------------------------------------------------------------------------
_______ __ __
/ | | | / / Royal Holloway and Bedford New College
/ | | |/ / Machine Vision Group
/ /| /| | | /
/__/ |/ |__| |____/
Simon Barker Phone: (0784) 439900 (UK)
Department of Physics (+44) 784 439900 (international)
Royal Holloway and Bedford
New College JANET: UHAP033@UK.AC.RHBNC.VAXA or
Egham Hill BARKER@UK.AC.RHBNC.PH.V1
Egham
Surrey, TW20 0EX BITNET: UHAP033@VAXA.RHBNC.AC.UK or
England BARKER@V1.PH.RHBNC.AC.UK
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads