On 02/08/2018 04:04 PM, Armen Abnousi wrote:
Hi Martin,

Thanks for your answer. What do you mean by "might go to the trouble of installing it", is there a way for us to install software on the build machines?

I meant that individual users might install MPI, even if it were not installed on the build machines, so they would be able to evaluate your code in parallel, even though the build machines evaluated it in serial. This would be an alternative to marking your package as 'not supported on Windows', which would mean that the user would need to go to special measures (installing your package from source, rather than the normal windows .zip archive).

As for the other suggestion, I'm not sure whether using BiocFileCache::BiocFileCache() will be more efficient than using parallel apply for example returning all the results to one processor and then broadcasting them out to all. If every processor is to write its intermediate results to a file and those files are to be read by every other processor then there will be "n" file reads, where each file is possibly on a different location on the disk. Do you happen to have any performance evaluation results for this method. But in any case I did not know about BiocFileCache, thanks for sharing it.

I do not know of benchmarks. MPI would use shared memory, perhaps backed by the file system. Serializing results to the master and back to the worker would involve R memory management, which is not optimized for this type of work flow. Saving to disk would provide whatever efficiencies and guarantees offered by the OS; it seems like these would be 'more' than R (a trivial example being serialization of very large vectors, which will cause R to fail) and less the MPI.

Martin



Thanks,
Armen

On Thu, Feb 8, 2018 at 7:58 AM, Martin Morgan <martin.mor...@roswellpark.org <mailto:martin.mor...@roswellpark.org>> wrote:



    On 02/07/2018 05:01 PM, Armen Abnousi wrote:

        Hi Valerie,

        Thanks for your reply. I can make it work using snow I believe.
        But the
        problem is that all functions in these packages that you have
        suggested
        (including snow; as far as I have seen) return the answer to one
        node and
        then if I want all nodes to have the same answer I will need to
        broadcast
        it to all nodes or repeat the same operation. This is very
        prohibitive,
        requiring a lot of communication. On the other hand if I could
        use MPI
        functionality, allGather would cut the operation to half (if not
        more,
        given the size of the communication that will be needed. I
        haven't been
        able to find a package with a functionality similar to allGather
        that will
        work without MPI. With larger dataset sizes, this problem
        becomes more
        threatening and that is just the opposite of what drives us to use
        parallelism. I don't know if there is any other option, maybe we
        can't do
        better, but I thought I'll let you know what my problem is and
        maybe you'll
        suggest a better way to deal with it. Thank you again.


    as a sub-optimal solution one could use the file system for data
    transfer, sending tempfile() or app-specific
    BiocFileCache::BiocFileCache() file paths between nodes; access
    could be synchronized using BiocParallel::ipc* mutex.

    Although the build system does not support MPI, sufficiently
    motivated users might go to the trouble of installing it; you could
    make your parallel code conditional on presence of MPI, defaulting
    to serial (maybe with an encouraging message()) otherwise. MPI
    depedencies would be moved to the Enhances: field, I think...

    Martin


        Thanks,
        Armen

        On Wed, Jan 31, 2018 at 2:37 PM, Obenchain, Valerie <
        valerie.obench...@roswellpark.org
        <mailto:valerie.obench...@roswellpark.org>> wrote:

            Hi Armen,

            MPI is not installed on the Windows builders so pbdMPI is
            not supported.
            Was there a specific reason you chose pbdMPI? There are
            several other
            options for parallel evaluation which are supported across
            all 3 platforms,
            e.g., BiocParallel, doParallel and batchtools.

            I took a brief look at what naddaR is importing from pdbMPI
            and didn't see
            anything unusual - I believe you can find all functionality
            in one of the
            alternatives. Please have a look and let us know if one of
            these will work
            for you.

            Thanks.
            Valerie



            On 01/27/2018 12:35 PM, Armen Abnousi wrote:

            Hi,

            I'm submitting a package for build, but for windows it goes
            to tokay2 and
            fails during the build with the following message:

            
----------------------------------------------------------------------------------

            * checking for file 'naddaR/DESCRIPTION' ... OK
            * preparing 'naddaR':
            * checking DESCRIPTION meta-information ... OK
            * installing the package to build vignettes
                    -----------------------------------
            * installing *source* package 'naddaR' ...
            ** R
            ** inst
            ** preparing package for lazy loading
            Error : .onLoad failed in loadNamespace() for 'pbdMPI', details:
                call: inDL(x, as.logical(local), as.logical(now), ...)
                error: unable to load shared object
            
'C:/Users/pkgbuild/packagebuilder/workers/jobs/626/R-libs/pbdMPI/libs/x64/pbdMPI.dll':
                LoadLibrary failure:  The specified module could not be
            found.

            ERROR: lazy loading failed for package 'naddaR'
            * removing
            
'C:/Users/pkgbuild/AppData/Local/Temp/Rtmp4kcgED/Rinst1ffc2775216d/naddaR'
            In R CMD INSTALL
                    -----------------------------------
            ERROR: package installation failed

            ------------------------------------------------------------
            -----------------------

            How can I change this? It builds for Linux and Mac on
            Merida2 and Malbec2.

            Thanks,
            Armen

                     [[alternative HTML version deleted]]

            
_______________________________________________bioc-de...@r-project.org
            <mailto:Bioc-devel@r-project.org> mailing
            listhttps://stat.ethz.ch/mailman/listinfo/bioc-devel
            <http://stat.ethz.ch/mailman/listinfo/bioc-devel>



            This email message may contain legally privileged and/or
            confidential
            information. If you are not the intended recipient(s), or
            the employee or
            agent responsible for the delivery of this message to the
            intended
            recipient(s), you are hereby notified that any disclosure,
            copying,
            distribution, or use of this email message is prohibited. If
            you have
            received this message in error, please notify the sender
            immediately by
            e-mail and delete this email message from your computer.
            Thank you.


                 [[alternative HTML version deleted]]

        _______________________________________________
        Bioc-devel@r-project.org <mailto:Bioc-devel@r-project.org>
        mailing list
        https://stat.ethz.ch/mailman/listinfo/bioc-devel
        <https://stat.ethz.ch/mailman/listinfo/bioc-devel>



    This email message may contain legally privileged and/or
    confidential information.  If you are not the intended recipient(s),
    or the employee or agent responsible for the delivery of this
    message to the intended recipient(s), you are hereby notified that
    any disclosure, copying, distribution, or use of this email message
    is prohibited.  If you have received this message in error, please
    notify the sender immediately by e-mail and delete this email
    message from your computer. Thank you.




This email message may contain legally privileged and/or...{{dropped:2}}

_______________________________________________
Bioc-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/bioc-devel

Reply via email to