Open MPI with D

Pavel Politsyn mrdarksys at gmail.com
Mon Jun 11 08:04:56 PDT 2012


On Friday, 25 November 2011 at 15:27:03 UTC, Jude Young wrote:
> On 11/25/2011 09:15 AM, Martin Nowak wrote:
>> On Fri, 25 Nov 2011 15:55:15 +0100, Max Samukha
>> <maxter at spambox.com> wrote:
>> 
>>> On 11/25/2011 02:27 PM, Andrei Alexandrescu wrote:
>>>> On 11/25/11 2:13 AM, Jude Young wrote:
>>>>> Is there an easy way to turn D style (string[] args) into C
>>>>> style?
>>>> 
>>>> Hm, I expected this would work:
>>>> 
>>>> extern(C) int __argc; extern(C) char** __argv;
>>>> 
>>>> The symbols do exist at least on OSX (no linker error) but 
>>>> they
>>>> are both zero, so apparently druntime doesn't initialize 
>>>> them.
>>>> 
>>>> 
>>>> Andrei
>>>> 
>>> 
>>> If you want a reference to an externally defined variable, you
>>> need another "extern" and (if the variable is non-TLS) -
>>> __gshared:
>>> 
>>> __gshared extern extern(C) int __argc;
>> 
>> It also took me terribly long to find out that one for getting
>> environ. We could probably get rid of setErrno and getErrno 
>> which
>> add extra C sources to druntime.
>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>> 
> I'll have to check these out.  In the meantime, More successes! 
> =D
>
> running hello_d with 5 threads
> Hello, world, I am 1 of 5
> Hello, world, I am 2 of 5
> Hello, world, I am 5 of 5
> Hello, world, I am 3 of 5
> Hello, world, I am 4 of 5
>
> running ring_d with 5 threads
> Process 0 sending 15 to 1, tag 201 (5 processes in ring)
> Process 0 sent to 1
> Process 0 decremented value: 14
> Process 0 decremented value: 13
> Process 0 decremented value: 12
> Process 0 decremented value: 11
> Process 0 decremented value: 10
> Process 0 decremented value: 9
> Process 0 decremented value: 8
> Process 0 decremented value: 7
> Process 0 decremented value: 6
> Process 0 decremented value: 5
> Process 0 decremented value: 4
> Process 0 decremented value: 3
> Process 0 decremented value: 2
> Process 0 decremented value: 1
> Process 0 decremented value: 0
> Process 0 exiting
> Process 1 exiting
> Process 2 exiting
> Process 3 exiting
> Process 4 exiting
>
> running connectivity_d with 25 threads
> Connectivity test on 25 processes PASSED.
>
> All of the basic examples included now work.
> I just need to find more examples and other things so that I 
> can make
> sure that everything else is working properly.

Hi All,

Jude Young,
Could you please share source code of your examples for me?
I'm interested to learn more about parallel programming on D via 
MPI.
And your sources can help me.

Thank you.


More information about the Digitalmars-d mailing list