1
Interprocess Communication (IPC) SKILL
The Interprocess Communication (IPC) SKILL functions allow you to create and communicate with child processes. This mechanism allows SKILL-based programs access to IPC and process control functionality that would normally require system level programming.
- Create encapsulation tools or utility programs.
- Communicate with encapsulated programs using standard IO channels.
- Control the encapsulated programs by sending signals like kill, interrupt, stop, and continue.
- Allow encapsulated programs to execute SKILL commands in the parent process.
- Run child processes on remote hosts.
The ability to run child processes, establish communication channels and control the processes through a SKILL procedural interface is a powerful utility. Programmers are advised to familiarize themselves with the basic principles of network and distributed programming.
Installation
For SKILL-IPC to start a remote process, it must be able to locate the cdsServIpc program on the remote host. This is typically done by using the same filepath to the Cadence installation hierarchy on both the local and remote machines.
cdsServIpc
cdsServIpc is a program that is started by the ipcBeginProcess function.
cdsServIpc uses setpgid to create a new process group but it remains in the same session as the parent process (the software from which it was started).
Therefore, the system resources used by the child processes will be included in the accounting for the parent process session.
cdsServIpc used setsid to create both a new session group and a new process group.cdsRemote
cdsRemote is used to start a program on a remote host.
cdsRemote shell [-n] hostname command [args ...]
cdsRemote copy srcFilename hostname:destFilename
cdsRemote copy -r srcPath [...] hostname:destDirectory
By default, the cdsRemote program works in the rsh or rcp environments. However, it can be modified to use ssh by copying <inst>/share/cdssetup/cdsRemsh/cdsRemote.scr to a directory with a higher search precedence (such as, $HOME/cdssetup/cdsRemsh/cdsRemote.scr or $CDS_SITE/cdssetup/cdsRemsh/cdsRemote.scr) and then modifying the copy.
If you only have the ssh setup, modify the cdsRemote.scr file and uncomment the #remoteSystem=ssh entry.
To use ssh with the DFII Distributed Processing feature, modify the cdsRemote.scr file and add the following in your .cdsinit file:
envSetVal("asimenv.distributed" "remoteShell" 'string "ssh")
Related Topics
Return to top