[phobos] [D-Programming-Language/phobos] 3cf671: Add std.parallelism.

Brad Roberts braddr at puremagic.com
Tue Apr 26 21:10:54 PDT 2011


It's a dual core amd:

vendor_id       : AuthenticAMD
cpu family      : 15
model           : 75
model name      : AMD Athlon(tm) 64 X2 Dual Core Processor 3800+
stepping        : 2
cpu MHz         : 1000.000
cache size      : 512 KB
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht
syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy

Actually, showing up on one box but not another is strong evidence of a concurrency bug in my experience.  Different
cpu's at different speeds, with different speed memory and other side components change timings enough to expose bugs
that otherwise haven't occurred elsewhere.

On 4/26/2011 8:44 PM, David Simcha wrote:
> What about the Linux 64 machine?  I'm getting some weird segfaults in std.parallelism that I can't reproduce on my Linux
> 64 VM.  I'm currently running the std.parallelism unittests in a loop and they're passing every time.  Furthermore, I've
> been using std.parallelism for real work on Linux 64 since DMD was capable of producing 64-bit binaries and it's worked
> fine.  It also passed a Jinx test a few weeks back.  (Jinx is software that's designed to make buggy multithreaded
> programs fail by fiddling with timings.  Bartosz Milewski tested std.parallelism with it after seeing my blog post.  The
> point is that this is evidence against the issue being a latent concurrency bug.)  Therefore, I'm thinking something
> very weird is going on with auto tester.
> 
> Also, I noticed it's segfaulting on FreeBSD, too.  I'm installing a FreeBSD VM right now to look into this.
> 
> On 4/26/2011 9:38 PM, Brad Roberts wrote:
>> Good point.. I'll make a note to myself to add system definitions for
>> those boxes somewhere obvious since that's important for some things.  The
>> freebsd box is an ancient pos, but it works:
>>
>> CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (2992.52-MHz 686-class CPU)
>>    Origin = "GenuineIntel"  Id = 0xf41  Family = f  Model = 4  Stepping = 1
>>
>> Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
>>
>>    Features2=0x441d<SSE3,DTES64,MON,DS_CPL,CNXT-ID,xTPR>
>>    TSC: P-state invariant
>> real memory  = 2147483648 (2048 MB)
>> avail memory = 2091065344 (1994 MB)
>> ACPI APIC Table:<A M I  OEMAPIC>
>> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
>> FreeBSD/SMP: 1 package(s) x 1 core(s) x 2 HTT threads
>>   cpu0 (BSP): APIC ID:  0
>>   cpu1 (AP/HT): APIC ID:  1
>>
>>
>>
>> On Tue, 26 Apr 2011, David Simcha wrote:
>>
>>> Date: Tue, 26 Apr 2011 21:02:07 -0400
>>> From: David Simcha<dsimcha at gmail.com>
>>> Reply-To: Discuss the phobos library for D<phobos at puremagic.com>
>>> To: Discuss the phobos library for D<phobos at puremagic.com>
>>> Subject: Re: [phobos] [D-Programming-Language/phobos] 3cf671: Add
>>>      std.parallelism.
>>>
>>> I actually realized that FreeBSD matters by looking at the auto tester to make
>>> sure the checkin wasn't breaking anything on OSX, which I also don't have
>>> access to.  I have a static assert that will probably fail (fixing it right
>>> now since it's trivial).  The other issue is that FreeBSD appears broken for
>>> unrelated reasons right now.  I just pushed a fix based on reading some
>>> documentation about FreeBSD, but I have no idea whether it's right or not
>>> because I don't have a FreeBSD box to test it on.  Also, the functionality is
>>> hard to automatically test because you need to know how many cores the box
>>> you're running on actually has.
>>>
>>> On 4/26/2011 8:45 PM, Brad Roberts wrote:
>>>> Assuming you have a good unit test for it, just check the auto tester...
>>>> Yes, freebsd/32 is supported for d2.
>>>>
>>>> On Tue, 26 Apr 2011, David Simcha wrote:
>>>>
>>>>> Just realized, are we supporting D2 on FreeBSD yet?  If so, I need to fix
>>>>> std.parallelism to detect the number of CPUs on it.  I think this is the
>>>>> same
>>>>> as on OSX, though.  (I used sysctlbyname on OSX.  Someone please confirm
>>>>> this
>>>>> is right on BSD.)
>>>>>
>>>>> On 4/26/2011 8:06 PM, noreply at github.com wrote:
>>>>>> Branch: refs/heads/master
>>>>>> Home:   https://github.com/D-Programming-Language/phobos
>>>>>>
>>>>>> Commit: 3cf67160b82d87d8de0bc7564aa1474149a92349
>>>>>>        https://github.com/D-Programming-Language/phobos/commit/3cf67160b82d87d8de0bc7564aa1474149a92349
>>>>>> Author: dsimcha<dsimcha at gmail.com>
>>>>>> Date:   2011-04-26 (Tue, 26 Apr 2011)
>>>>>>
>>>>>> Changed paths:
>>>>>>      M changelog.dd
>>>>>>      M posix.mak
>>>>>>      A std/parallelism.d
>>>>>>      M unittest.d
>>>>>>      M win32.mak
>>>>>>
>>>>>> Log Message:
>>>>>> -----------
>>>>>> Add std.parallelism.
>>>>>>



More information about the phobos mailing list