Opened 12 years ago

Closed 12 years ago

#34022 closed submission (fixed)

svipc (new port) -- System V InterProcess Communication (Yorick/Python plug-ins)

Reported by: paumard Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.0.4
Keywords: Cc:
Port:

Description

Hi,

This Portfile contains several subports py*-svipc and yorick-svipc, plug-ins for python and yorick around the SysV IPC functionalities.

It allows sharing memory and passing messages between several processes. The two primary use cases are:

  • parallel (multiprocess) computing;
  • mixed yorick/python/whatever applications.

yorick-svipc can optionally be used by yorick-yao. To try it:

  • as root, give some space to the shared memory and install the packages:
    sysctl -w kern.sysv.shmmax=33554432
    sysctl -w kern.sysv.shmmin=1
    sysctl -w kern.sysv.shmmni=256
    sysctl -w kern.sysv.shmseg=64
    sysctl -w kern.sysv.shmall=8192
    port install yorick-yao yorick-svipc
    
  • as user, copy the examples, request svipc usage, and run the examples (and quit yorick):
    cp -a /opt/local/lib/yorick/share/yao/examples ./
    cd examples
    sed -i .bak 's|// \(.*\)\.svipc|\1\.svipc|' test-all.i
    yorick -i test-all.i
    quit
    
  • while the tests are running, ipcs -a should list several shared memory segments, semaphores and message queues in use. Running it after the tests are complete should yield an empty list (unless you have other programs using the IPC framework running!)

The python plug-ins also work in real-life examples, but I don't have a simple one to exhibit.

The port uses three patches:

  • patch-setup.py.diff: configuration of the python plug-in;
  • patch-svipc_misc.h.diff: fix a missing #include;
  • patch-svipc_module.c.diff: bugfix backported from git.

I would be grateful if someone would consider committing this port for me.

Kind regards, Thibaut.

Attachments (4)

patch-setup.py.diff (321 bytes) - added by paumard 12 years ago.
patch-svipc_misc.h.diff (251 bytes) - added by paumard 12 years ago.
patch-svipc_module.c.diff (1.1 KB) - added by paumard 12 years ago.
Portfile (1.9 KB) - added by paumard 12 years ago.
python/py-svipc/Portfile; no need for patches anymore

Download all attachments as: .zip

Change History (7)

Changed 12 years ago by paumard

Attachment: patch-setup.py.diff added

Changed 12 years ago by paumard

Attachment: patch-svipc_misc.h.diff added

Changed 12 years ago by paumard

Attachment: patch-svipc_module.c.diff added

comment:1 Changed 12 years ago by paumard

Please hold on, upstream is about to release the next version, with bugfixes.

comment:2 Changed 12 years ago by paumard

Hi again,

Here comes the new version. Please disregard the patch files: they are not used anymore.

I'm not sure how to deal with the error reported by port lint yorick-svipc: should I split this subport in a separate Portfile under science?

In addition to the yorick-yao example above, this port can be tested from the extracted source (with the ports installed). cd to ${worksrcpath}/demo. To check yorick <-> python communication: yorick -i ping.i. You can change which python is called by editing ping.i. To test a parallel application, try yorick -i timing-demo.i.

Best regards, Thibaut.

Changed 12 years ago by paumard

Attachment: Portfile added

python/py-svipc/Portfile; no need for patches anymore

comment:3 Changed 12 years ago by neverpanic (Clemens Lang)

Resolution: fixed
Status: newclosed

Commited in r92399 with the follwing changes:

  • Removed support for python24 and 25, we're phasing those out
  • Added comment about the deliberate lint error
  • Disabled livecheck in subports
Note: See TracTickets for help on using tickets.