Browse thread
Marshalling problem?
- Thomas Fischbacher
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Thomas Fischbacher <tf@f...> |
| Subject: | Marshalling problem? |
I encounter a rather weird problem when marshalling a complicated highly networked data structure to send it over the net (yes, it's brute, but that allows me to get an issue solved very quickly which I will refine later on in the future). Basically, the actual sending of a large chunk of data over the net (using MPI_Send/MPI_Recv and serialization) works fine. But the deserialisation seems to get in trouble (on x86-32) when the data is more than 16 MB. Strange enough, If I do not rely on CamlMPI's internal serialization of ML values, but do this of my own and serialize to a bigarray beforehand, the process that just has serialized the data can deserialize it again. If I load that data into some other process - either via the net or by intermediately writing to a file, I get either a segfault or an internal failure exception from the deserializer. Seems as if some initialization may have been omitted somewhere which gets done by first using the serializer... I put an image file (large) as well as some code to demonstrate the deserialization problem on the web at: http://nmag.soton.ac.uk/tf/ocaml-marshal/ The ba.master data array just contains that data that were sent across the network by my master MPI process, and received in the same form by my slave MPI process. Now I am not 100% sure yet I identified the problem correctly -- but I am about 90% confident by now. Oh, by the way, this is using 3.09.2. -- best regards, Thomas Fischbacher t.fischbacher@soton.ac.uk