From luke-tierney at uiowa.edu  Mon Oct  3 15:28:59 2011
From: luke-tierney at uiowa.edu (luke-tierney at uiowa.edu)
Date: Mon, 3 Oct 2011 08:28:59 -0500
Subject: [Rd] serialize/unserialize vector improvement
In-Reply-To: <CANwu5-qjBe_3-KOH2QvufgBVnt8URRvnYz4Z9Be7m+g0KdeFVA@mail.gmail.com>
References: <CANwu5-oZXZjThFof++sf9bE2xYt-1g60+HjhA3vogD7Qnm_m6Q@mail.gmail.com>
	<CANwu5-qjBe_3-KOH2QvufgBVnt8URRvnYz4Z9Be7m+g0KdeFVA@mail.gmail.com>
Message-ID: <alpine.LFD.2.02.1110030828220.15986@nokomis.stat.uiowa.edu>

It's on my list to look at but I may not get to it for a couple of
weeks. Someone else may get there earlier.

Best,

luke

On Mon, 3 Oct 2011, Michael Spiegel wrote:

> Any thoughts? I haven't heard any feedback on this patch.
>
> Thanks!
> --Michael
>
> On Wed, Sep 28, 2011 at 3:10 PM, Michael Spiegel
> <michael.m.spiegel at gmail.com> wrote:
>> Hi folks,
>>
>> I've attached a patch to the svn trunk that improves the performance
>> of the serialize/unserialize interface for vector types. The current
>> implementation: a) invokes the R_XDREncode operation for each element
>> of the vector type, and b) uses a switch statement to determine the
>> stream type for each element of the vector type. I've added
>> R_XDREncodeVector/R_XDRDecodeVector functions that accept N elements
>> at a time, and I've reorganized the implementation so that the stream
>> type is not queried once per element.
>>
>> In the following microbenchmark (below), I've observed performance
>> improvements of about x2.4. ?In a real benchmark that is using the
>> serialization interface to make MPI calls, I see about a 10%
>> improvement in performance.
>>
>> Cheers,
>> --Michael
>>
>> microbenchmark:
>>
>> input <- matrix(1:100000000, 10000, 10000)
>> output <- serialize(input, NULL)
>> for(i in 1:10) { print(system.time(serialize(input, NULL))) }
>> for(i in 1:10) { print(system.time(unserialize(output))) }
>>
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

-- 
Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:      luke at stat.uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu


[Rd] serialize/unserialize vector improvement
luke-tierney at uiowa.edu