From: "Olivier Andrieu" <oandrieu@nerim.net>
To: "Thomas Fischbacher" <tf@functionality.de>
Cc: "Caml-list List" <caml-list@inria.fr>
Subject: Re: [Caml-list] CamlMPI: sending marshalled objects
Date: Wed, 23 Jan 2008 11:15:20 +0100 [thread overview]
Message-ID: <95513600801230215k4798b826tfe6c0a38620ca73d@mail.gmail.com> (raw)
In-Reply-To: <47963B6C.1010301@functionality.de>
Hi,
On Jan 22, 2008 7:52 PM, Thomas Fischbacher <tf@functionality.de> wrote:
>
> Hello everybody,
>
> there is an old Caml/MPI interface, written by Xavier himself in 1998.
> This provides a pair of C functions caml_mpi_send/caml_mpi_receive,
> which may look a bit funny considering present day ML-C-interface coding
> conventions, but GC-wise is actually valid code as far as I can judge.
> For reference, I added them at the end of this email.
I've been using this interface some time ago (in 2006). I rewrote it a
bit to bring it up-to-date with the current conventions.
> As far as I can see, output_value_to_malloc() actually should be able to
> serialize virtually any ML object (which does not contain alloc_custom()
> blocks and similar stuff) to a buffer.
some custom blocks such as Bigarrays can be serialised too.
> Sending this over the net also
> should not be much of a problem, regardless of the data being sent. If,
> on the other hand, I manually serialized to a string and tried to send
> that, I would be bound by the 16 MB maximal string length limitation on
> 32-bit architectures.
right.
> So much the theory. But what I actually find in reality is that -- even
> using caml_mpi_send/caml_mpi_receive rather than intermediate strings --
> my code crashes when I try to pass around serialized ML data over MPI
> which is larger than 16 MB. I am not yet 100% sure that this really is
> the problem, but at present, I have every reason to believe so.
>
> So, (1) what is going on here, and (2) how can I repair it?
> Is there a quick fix?
I'm not sure what is going on, I was able to transmit large marshalled
values IIRC.
One serious problem in the current code is the treatment of errors.
Ocamlmpi registers an error handler that raises an OCaml exception.
However, should an error occur during MPI_Send, the handler is invoked
with the global mutex released since MPI_Send is between
enter/leave_blocking_section. Maybe that's what causing the crash.
--
Olivier
next prev parent reply other threads:[~2008-01-23 10:15 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-22 18:52 Thomas Fischbacher
2008-01-23 10:15 ` Olivier Andrieu [this message]
2008-01-23 11:52 ` [Caml-list] " Thomas Fischbacher
2008-01-23 11:48 ` Jon Harrop
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=95513600801230215k4798b826tfe6c0a38620ca73d@mail.gmail.com \
--to=oandrieu@nerim.net \
--cc=caml-list@inria.fr \
--cc=tf@functionality.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox