On Wed, Oct 1, 2014 at 9:18 AM, Kapil Agarwal <[email protected]> wrote:
> Hi
>
> On Tuesday, 30 September 2014 08:23:05 UTC-4, Erik Schnetter wrote:
>>
>> There is a package "MPI.jl" that allows calling MPI from Julia. With
>> this, any MPI-based algorithm can be translated to Julia, and the
>> speed of MPI should be the same as for any other language.
>>
>> -erik
>
>
> I thought Julia has its own message passing paradigm which provides
> functionality similar to MPI but in a different way. So, I wanted to
> benchmark it against a native MPI implementation. If no such benchmarks
> exist, would it be a good idea to compare MPI and Julia performance ? After
> all, you would want users to use the Julia parallel computing API rather
> than port existing libraries to Julia ?

Yes, this is correct: Julia offers a more high-level API than pure
MPI. However, when it comes to benchmarking one should probably
distinguish between two things:

(1) The high-level programming API that is offered
(2) The underlying transport mechanisms (how things are mapped to hardware)

For example, when running Julia on a cluster, there may be special
high-speed low-latency communication hardware such as InfiniBand
interconnects. Currently, Julia would not use these, but MPI would,
giving MPI an unfair advantage until Julia is using such hardware as
well.

Similarly, Julia's current cluster manager should work fine and
efficiently if you are using (say) 10 workstations. However, if you
are using many more -- say 1000 -- then Julia's current cluster
manager implementation will not scale. Again, this is only a
limitation of the current implementation, not of the high-level API
that Julia is offering, and I'm sure this will be improved in time.

I am currently working on a "cluster manager" based on MPI; see
<https://bitbucket.org/eschnett/funhpc.jl/>. This is still in an
experimental stage, and it's not clear to me yet how this can be
merged into Julia's ClusterManager class, as certain fundamental
implementation aspects of the current ClusterManager implementation
may need to be changed. However, the high-level API is very similar.
Fortunately, this part of ClusterManager is already being redesigned.

If you want to benchmark large-scale applications, then you will
probably need to use a ClusterManager that uses an efficient
communication protocol such as MPI; otherwise, you would benchmark
implementation limitations instead of comparing the high-level API.

-erik


>> On Tue, Sep 30, 2014 at 12:12 AM, Tony Kelman <[email protected]> wrote:
>> > I'm not aware of any such data comparing Julia on large-scale parallel
>> > tasks
>> > with nontrivial communication patterns vs a more conventional HPC
>> > cluster
>> > approach using MPI. There are some benchmark problems (generally
>> > intended
>> > for serial or small-scale parallel execution, I believe) under
>> > test/perf,
>> > but it might be more interesting if you have your own parallel
>> > application
>> > you want to test with.
>> >
>> > Keep us posted as you get further into this.
>> >
>
>
> I checked out test/perf and I could not find any parallel implementations,
> so I believe it would be a good idea to benchmark highly parallel
> applications with Julia.
> Actually, I am looking at Julia for a college project and have access to a
> HPC cluster and am thinking to implement graph algorithms. I would
> appreciate if you could give me some suggestions on my idea.
>
>
> Thanks
> Kapil
>
>> >
>> > On Monday, September 29, 2014 11:58:33 AM UTC-7, Kapil Agarwal wrote:
>> >>
>> >> Hi
>> >>
>> >> I am looking to benchmark some standard parallel algorithms using
>> >> Julia. I
>> >> am thinking of comparing its performance with MPI and other parallel
>> >> programming paradigms. Although I couldn't find much on any existing
>> >> benchmarks, I was looking forward to any benchmarks that may have been
>> >> done
>> >> by the julia-dev team or in case any one is aware of any such
>> >> benchmarks
>> >> that could help me go about it.
>> >>
>> >> Thanks
>> >>
>> >> Kapil
>>
>>
>>
>> --
>> Erik Schnetter <[email protected]>
>> http://www.perimeterinstitute.ca/personal/eschnetter/



-- 
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/

Reply via email to