2010-08-31

the MathLink ABI

adda/ABI"mathlink

8.12: news.adda/mathematica`mathlink:
. MathLink is the same as the
binary version of adda:
it's the communication protocol between
the kernel that provides the app,
and the notebook that is the user's agent;
. any program that adopts this protocol,
can communicate with any other app,
and of course, the user's agent .
. adopters can communicate as
client, server, or peer-to-peer .
. it makes accessable any hardware resources
having a c interface .
. because it's the connection between
the user's shell and the engine,
you're assured that its API is complete:
anything you can see as a user,
can also be seen by an
app that has embedded Mathematica .
. conversely, a custom user's shell
can have integrated access to both
Mathematica and addx .
. Wolfram already has a customized
user's shell, .NET/Link,
that integrates microsoft's .NET
. this is a complete integration,
extending the Mathematica language
with all existing and future .NET types
(which include all library calls)
allowing the same immediate run mode,
for RAD programming of .NET
and Mathematica extensions .
-- and it's openware!

. its protocol includes internet,
and includes data integrity .
. if the binary protocol is not usable,
it can also revert to html or xml .
. as the binary version of a
full-featured language,
in can express "(out-of-band data,
such as exceptions).
. having this network access
means it can support a
Parallel Computing Toolkit
and act like the X protocol,
running on a server, while
viewed from a laptop or tablet;

. in addition to being an ipc protocol
for extending and embedding Mathematica,
Mathlink is a reference to some
pre-built integrations with some other
popular app's like Excel,
where it can a either extend or replace
that spreadsheet's macro language .

. the C/C++ MathLink Software Developer Kit (SDK)
ships with every version of Mathematica .

massively parallel computing for the masses!
. the Mathematica cloud computing service
is a collaborative effort of
Wolfram Research's parallel programming API,
Nimbis Services's job routing,
and R Systems NA's supercomputer time .
. it assists parallel programming
by providing an integrated
technical computing platform,
enabling computation, visualization,
and data access.
(2008.12: Mathematica 7 features concurrency primitives:
Wolfram's new Parallelize, ParallelTry
and ParallelEvaluate functions
provide automatic and concurrent
expression evaluation.
Parallel performance can be tweaked and queued using
the ParallelMap, ParallelCombine, ParallelSubmit,
WaitAll and WaitNext functions.
These and many other parallel computing functions
ensure that developers have tremendously granular control
over what will be sent through the parallel pipeline
and exactly how that data will be processed.
. this concurrency can also be fully utilized
with Wolfram's gridMathematica
and upcoming CloudMathematica add-ons .)
. Nimbis Services, Inc., is a clearing-house,
providing business users an easy to use
menu of hpc services,
including TOP500 supercomputers
and the Amazon Elastic Compute Cloud,
all in one "instant" storefront.
. Nimbis Services will enable access to
R Systems NA, Inc.,
whose R Smarr cluster was the
44th fastest supercomputing system
on the TOP500 list in 2008 .
. R Systems has exceptionally large memory
in multi-core HPC resources
with a double-data and quad-data rate
InfiniBand network .
R Systems not yet accessable:
. only Amazon EC2 configurations
are currently operational.

8.14: adda/ABI/versioning:
. an abi (app'binary interface)
may need to be revised;
as an extension to the addm abi:
(type, subtype, function, args)
there needs to be an identity number
that is established by handshake
which is detected by the msg being
sent from the zero identity .
. identities are retained for the duration of
a connection session;
. the handshake is coded in the original ABI version,
and the parties can then haggle about
what the remaining session will be coded in .