paexec

Software Screenshot:
paexec
Software Details:
Version: 0.19.1
Upload Date: 20 Feb 15
Developer: Aleksey Cheusov
Distribution Type: Freeware
Downloads: 19

Rating: 1.0/5 (Total Votes: 1)

paexec is an utility that distributes given tasks (stdin) across several CPUs or machines in a network.

paexec has no limited internal buffers anymore. All they are resized automatically as it is needed. PAEXEC_BUFSIZE environment variable sets an *initial* buffer size, not *maximum* one.

README: notes about non-standard function getopt_long, and advice how to build paexec on platforms with no getopt_long support (JP-UX, Solaris etc.).

Installation:

0) BSD make is required. I name it 'bmake' but its real name may
vary. pmake or just make are possible variants.

If you need to change the default building options,
run bmake like this

env [YOUR_ASSIGNMENTS] bmake

See example section below

1) "libmaa" library is required to build paexec. It is a part of
"dict" project http://sourceforge.net/projects/dict

Quick sample of building:

gzip -dc /home/cheusov/downloads/dictd-X.Y.Z.tar.gz | tar -xf-
cd dictd-X-Y-Z/libmaa
./configure
gmake
gmake install

NOTE: gmake is GNU make here! Under most Linux distros
it is named make.

2) Uncompress paexec tarball you've downloaded like this
gzip -dc paexec-X-Y-Z.tar.gz | tar -xf-

3) cd paexec-X-Y-Z

4) bmake

5) (optional!) bmake install-dirs

6) bmake install

There are a lot of Makefile variables that can be changed during
building and installation.
paexec's own variables (All they are at the begining of Makefile):

PREFIX - where paexec is installed to
LIBMAA - linker option for linking "maa" library

BSD make's variables (most commonly used,
for all others - see make's documentation and .mk files)

BINDIR - where paexec executable itself is installed to
MANDIR - where manual pages are installed to

BINOWN - paexec executable owner
BINGRP - paexec executable group

MANOWN - man page owner
MANGRP - man page group

Examples of building and installing:

1) bmake all install-dirs install

2) env CC=icc
PREFIX=/home/cheusov/local
CPPFLAGS='-I/usr/pkg/include'
LDFLAGS='-L/usr/pkg/lib -Wl,-rpath -Wl,/usr/pkg/lib'
LDADD=-lextralib
CFLAGS='-Werror -Wall'
BINOWN=cheusov
BINGRP=users
MANOWN=cheusov
MANGRP=users
MKCATPAGES=no
bmake -s all install-dirs install

3) paexec needs the non-portable getopt_long(3) present in
*BSD and Linux OSes. If it is absent in your OS,
you can build paexec like the following.

echo '#include ' > ./config.h

env
CPPFLAGS='-DNO_PORTABHACKS_H=1 -DHAVE_CONFIG_H=1'
LDFLAGS='-lnbcompat'
bmake -s all install-dirs install

where libnbcompat is a NetBSD's portability library

Of course, you can also use any other implementation of getopt_long.

NOTE: No, I'll not use autotools

What is new in this release:

  • libmaa is not needed anymore to build and run paexec.
  • Presentation paexec.pdf was added.
  • Environment variable PAEXEC_EOT was introduced.
  • Option -y was added to paexec(1) and paexec_reorder(1) for setting an end-of-task marker to the "magic" string.
  • Option -C was added to paexec(1) for setting "calculator" more easily.
  • Option -x was added to paexec_reorder(1).
  • Additions and improvements to regression tests and documentation were made.

What is new in version 0.18.0:

  • NULL dereference (sigsegv) has been fixed in paexec(1).
  • It happened when the first line given on input was empty.
  • An entire command passed to ssh-like transport is now shquoted.
  • In particular this fixes -x, which didn't work together with -t. "paexec -g" now accepts an empty string as a task.
  • A minor fix has been made in the paexec_reorder man page.
  • More regression tests have been added.

What is new in version 0.17.0:

  • The option -x instructs paexec(1) to run one command per task.
  • Improvements for the option -n.
  • The option '-m t=' sets an alternative end of task marker.
  • The option -md= sets a delimiter between tasks in graph mode (-g).
  • An output line that contains failed dependants no longer ends with an unnecessary delimiter character.
  • Long options were completely removed.
  • "paexec_reorder -g" now correctly handles failed tasks' output.
  • The option -m was added to paexec_reorder(1), which is similar to paexec's -m.
  • More examples and regression tests.
  • Documentation updates and improvements.

What is new in version 0.16.0:

  • This version has a fix for compilation failures on ancient OpenBSD, HP-UX, and maybe others.
  • New modes for reordering tasks were added; see -W0 and -W2 options.
  • Long options are still supported but considered deprecated.
  • "mkcmake test" now has a chance to succeed on HP-UX, Solaris, and other SVR4 derivates.

What is new in version 0.15.0:

  • The build system has changed from mk-files to mk-configure.
  • There is a new executable paexec_resort(1) for normalizing the sliced output of paexec(1).
  • There is a new option -W for reordering tasks.
  • With this option, paexec(1) is able to minimize total processing time by distributing tasks over the network or CPUs in a better way.
  • There is a fix for a 1 byte buffer overflow that happened when the -d (debugging) option was applied.
  • Documentation updates, minor fixes, and code clean-ups.

What is new in version 0.13.0:

  • The algorithm for cycle detection (paexec -s) was completely reworked and now does't allocate tasks_count^2 integers.
  • Now it works much faster.
  • The -Z _timeout_ option was added.
  • An attempt to rerun a command on a failed node is made every _timeout_ seconds.
  • This option makes it possible to organize clusters over unreliable networks, hardware or software.

What is new in version 0.12.0:

  • This release adds a -z option. If applied, read/write(2) operations from/to nodes become non-critical.
  • In case paexec has lost connection to the node, it will reassign the failed task to another node and, if the -s option is applied, will output the string "fatal" to stdout.
  • This makes paexec resistant to the I/O errors, and as a result you can create paexec clusters even over a network consisting of unreliable hosts (Internet?).
  • Failed hosts are marked as such, and will not be used during the current run of paexec. There are minor fixes.

What is new in version 0.11.0:

  • This release adds paexec -s, which checks an input task's graph for cycles before beginning actual work. If it/they are detected, paexec exits with an error.
  • A minor manpage fix has been made.

What is new in version 0.10.1:

  • A minor fix was made for "paexec -s" (rhomb-like dependencies).
  • A minor fix was made in the man page.
  • Clean-ups were done in tests/test.sh. getopt_long(3) falls back to getopt(3) on Solaris, HP-UX, Interix, etc.

Similar Software

Open MPI
Open MPI

17 Feb 15

Ehcache
Ehcache

11 May 15

pyssf
pyssf

14 Apr 15

Other Software of Developer Aleksey Cheusov

mk-configure
mk-configure

20 Feb 15

DictEm
DictEm

20 Feb 15

LMDBG
LMDBG

20 Feb 15

Comments to paexec

Comments not found
Add Comment
Turn on images!