parallel process

Discussion in 'Cadence' started by Andrey Orlenko, Apr 1, 2004.

  1. How to make parallel calculations on SKILL ?
     
    Andrey Orlenko, Apr 1, 2004
    #1
  2. Andrey Orlenko

    S. Badel Guest

    one way i can see is to launch several external processes
    using interprocess communication (ipc)
     
    S. Badel, Apr 1, 2004
    #2
  3. 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)
     
    Andrey Orlenko, Apr 1, 2004
    #3
  4. Andrey Orlenko

    S. Badel Guest

    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
     
    S. Badel, Apr 1, 2004
    #4
  5. Thank you VERY much !!!! ;)))
     
    Andrey Orlenko, Apr 1, 2004
    #5
  6. Andrey Orlenko

    Arnold Guest


    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
     
    Arnold, Apr 2, 2004
    #6
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.