parallel process

one way i can see is to launch several external processes
using interprocess communication (ipc)

"Andrey Orlenko" <eagle@ukr.net> wrote in message
news:c4gldj$2mf2$1@news.ntu-kpi.kiev.ua...
> How to make parallel calculations on SKILL ?
 
S. Badel wrote:

one way i can see is to launch several external processes
using interprocess communication (ipc)

How to make parallel calculations on SKILL ?
My situation:
I've got program GUI on SKILL, it starts external program
/ sh("./program &") /.
External program is calculating and GUI must at the same time output
intermediate data to window from external program (it's clear) AND GUI
must respond to user actions (stop program, pause, exit, e.t.c)
 
you probably can do this with IPC like this :

instead of launching your program with sh, lauch it with ipcBeginProcess.
you can define skill callback functions to synchronously process output
from the program. then, execution can continue normally and callbacks
will be called whenever data is available.

procedure( launchProcess()
process = ipcBeginProcess( "command" nil "myDataHandler" "myErrHandler"
"myPostExecFunction" )
) ; procedure

procedure( myDataHandler( childId data )
printf( "program outputted %s\n" data )
) ; myDataHandler

procedure( myErrorHandler( childId data )
printf( "program error : %s\n" data )
) ; myErrorHandler

procedure( myPostExecFunction( childId status)
printf( "program terminated with status %d\n" status )
) ; myPostExecFunction


"Andrey Orlenko" <eagle@ukr.net> wrote in message
news:c4h2o7$3pb$1@news.ntu-kpi.kiev.ua...
S. Badel wrote:

one way i can see is to launch several external processes
using interprocess communication (ipc)

How to make parallel calculations on SKILL ?

My situation:
I've got program GUI on SKILL, it starts external program
/ sh("./program &") /.
External program is calculating and GUI must at the same time output
intermediate data to window from external program (it's clear) AND GUI
must respond to user actions (stop program, pause, exit, e.t.c)
 
S. Badel wrote:

you probably can do this with IPC like this :

instead of launching your program with sh, lauch it with ipcBeginProcess.
you can define skill callback functions to synchronously process output
from the program. then, execution can continue normally and callbacks
will be called whenever data is available.

procedure( launchProcess()
process = ipcBeginProcess( "command" nil "myDataHandler" "myErrHandler"
"myPostExecFunction" )
) ; procedure

procedure( myDataHandler( childId data )
printf( "program outputted %s\n" data )
) ; myDataHandler

procedure( myErrorHandler( childId data )
printf( "program error : %s\n" data )
) ; myErrorHandler

procedure( myPostExecFunction( childId status)
printf( "program terminated with status %d\n" status )
) ; myPostExecFunction
Thank you VERY much !!!! ;)))
 
Andrey Orlenko <eagle@ukr.net> wrote in message news:<c4gldj$2mf2$1@news.ntu-kpi.kiev.ua>...
How to make parallel calculations on SKILL ?

Hi

it is not possible to start several SKILL calculations parallel, but
what you can do, is to start several ipcProcesses outside of cadence.
You can communicate synchronous or asynchronous with a chip process.

These are the main functions you need.

ipcBeginProcess()
ipcReadProzess()
ipcWriteProcess()
ipcKillProcess()

CU

Arnold
 

Welcome to EDABoard.com

Sponsor

Back
Top