[M3devel] Native threading

dragisha at m3w.org dragisha at m3w.org
Tue Sep 9 17:09:17 CEST 2014


...tests/thread/src% time ../AMD64_DARWIN/threadtest -n 20 -iters 1000 
-tests read,nxread,tryexcept,fork,alloc,creat,lock
...
All tests complete.  Congratulations.
../AMD64_DARWIN/threadtest -n 20 -iters 1000 -tests   54351.62s user 
5207.71s system 392% cpu 4:12:50.10 total

Finishes without forktoomuch. It may be because of lingering (zombified) 
processes in case when Process.Wait() was not called. And limit on 
process numbers on OS X Mavericks is pretty low.

cc

glamdring:dragisa.duric/s002On 08.09.2014 20:19, Dragiša Durić wrote:
> It looks like OS X cannot fork as much as we would like :).
> 
> -iters 100 and -iters 300 finishes. -iters 1000 slows machine down, it
> does not break but current user cannot fork anymore, anywhere on the
> box.
> 
> Thread test does Join after Fork - it looks like implementation issue
> or pthreads @ OS X issue. Somebody is not cleaning up.
> 
> On 07 Sep 2014, at 12:33, mika at async.caltech.edu wrote:
> 
>> That's great news!
>> 
>> I would try it with
>> 
>> "-iters 100000 -n 20 -tests ALL"
>> 
>> that seems to be among the toughest you can set up.
>> 
>> There may well be warnings about starvation/deadlock, but those are OK 
>> under these conditions.
>> 
>>    Mika
>> 
>> Tony Hosking writes:
>>> 
>>> --Apple-Mail=_483BE841-4972-4BFD-8336-BD261CD93863
>>> Content-Transfer-Encoding: quoted-printable
>>> Content-Type: text/plain;
>>> 	charset=us-ascii
>>> 
>>> The version of ThreadPThread I just checked in passes the threadtest 
>>> =
>>> stress test on OSX with no failures:
>>> 
>>> Writing file...done
>>> Creating read threads...done
>>> Creating fork threads...done
>>> Creating alloc threads...done
>>> Creating lock threads...done
>>> running...printing oldest/median age/newest
>>> ..........laziest thread is 1/0/0 (tests: read 0/0/0 fork 1/1/1 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 1/0/0 (tests: read 0/0/0 fork 1/1/1 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 1/0/0 (tests: read 0/0/0 fork 1/1/1 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> ..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 0/0/0 alloc 
>>> =
>>> 0/0/0 lock 0/0/0)
>>> All tests complete.  Congratulations.
>>> 
>>> 
>>> Antony Hosking | Associate Professor | Computer Science | Purdue =
>>> University
>>> 305 N. University Street | West Lafayette | IN 47907 | USA
>>> Mobile +1 765 427 5484
>>> 
>>> 
>>> 
>>> 
>>> 
>>> 
>>> --Apple-Mail=_483BE841-4972-4BFD-8336-BD261CD93863
>>> Content-Transfer-Encoding: quoted-printable
>>> Content-Type: text/html;
>>> 	charset=us-ascii
>>> 
>>> <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
>>> charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
>>> -webkit-nbsp-mode: space; -webkit-line-break: =
>>> after-white-space;"><div>The version of ThreadPThread I just checked 
>>> in =
>>> passes the threadtest stress test on OSX with no =
>>> failures:</div><div><br></div><div><div style=3D"margin: 0px; 
>>> font-size: =
>>> 10px; font-family: Monaco;">Writing file...done</div><div 
>>> style=3D"margin:=
>>> 0px; font-size: 10px; font-family: Monaco;">Creating read =
>>> threads...done</div><div style=3D"margin: 0px; font-size: 10px; =
>>> font-family: Monaco;">Creating fork threads...done</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: Monaco;">Creating 
>>> =
>>> alloc threads...done</div><div style=3D"margin: 0px; font-size: 10px; 
>>> =
>>> font-family: Monaco;">Creating lock threads...done</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: =
>>> Monaco;">running...printing oldest/median age/newest</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: =
>>> Monaco;">..........laziest thread is 1/0/0 (tests: read 0/0/0 fork 
>>> 1/1/1 =
>>> alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 0px; font-size: 
>>> 10px; =
>>> font-family: Monaco;">..........laziest thread is 1/0/0 (tests: read 
>>> =
>>> 0/0/0 fork 1/1/1 alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 
>>> 0px; =
>>> font-size: 10px; font-family: Monaco;">..........laziest thread is 
>>> 1/0/0 =
>>> (tests: read 0/0/0 fork 1/1/1 alloc 0/0/0 lock 0/0/0)</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: =
>>> Monaco;">..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 
>>> 0/0/0 =
>>> alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 0px; font-size: 
>>> 10px; =
>>> font-family: Monaco;">..........laziest thread is 0/0/0 (tests: read 
>>> =
>>> 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 
>>> 0px; =
>>> font-size: 10px; font-family: Monaco;">..........laziest thread is 
>>> 0/0/0 =
>>> (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: =
>>> Monaco;">..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 
>>> 0/0/0 =
>>> alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 0px; font-size: 
>>> 10px; =
>>> font-family: Monaco;">..........laziest thread is 0/0/0 (tests: read 
>>> =
>>> 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 
>>> 0px; =
>>> font-size: 10px; font-family: Monaco;">..........laziest thread is 
>>> 0/0/0 =
>>> (tests: read 0/0/0 fork 0/0/0 alloc 0/0/0 lock 0/0/0)</div><div =
>>> style=3D"margin: 0px; font-size: 10px; font-family: =
>>> Monaco;">..........laziest thread is 0/0/0 (tests: read 0/0/0 fork 
>>> 0/0/0 =
>>> alloc 0/0/0 lock 0/0/0)</div><div style=3D"margin: 0px; font-size: 
>>> 10px; =
>>> font-family: Monaco;">All tests complete.  =
>>> Congratulations.</div></div><div><br></div><br><div>
>>> <span class=3D"Apple-style-span" style=3D"border-collapse: separate; 
>>> =
>>> border-spacing: 0px;"><span class=3D"Apple-style-span" =
>>> style=3D"border-collapse: separate; color: rgb(0, 0, 0); font-family: 
>>> =
>>> Helvetica; font-size: 12px; font-style: normal; font-variant: normal; 
>>> =
>>> font-weight: normal; letter-spacing: normal; line-height: normal; =
>>> orphans: 2; text-indent: 0px; text-transform: none; white-space: 
>>> normal; =
>>> widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; 
>>> =
>>> -webkit-border-vertical-spacing: 0px; =
>>> -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: =
>>> auto; -webkit-text-stroke-width: 0px; "><div style=3D"word-wrap: =
>>> break-word; -webkit-nbsp-mode: space; -webkit-line-break: =
>>> after-white-space; "><span class=3D"Apple-style-span" =
>>> style=3D"border-collapse: separate; 
>>> -webkit-border-horizontal-spacing: =
>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); =
>>> font-family: Helvetica; font-size: 12px; font-style: normal; =
>>> font-variant: normal; font-weight: normal; letter-spacing: normal; =
>>> line-height: normal; -webkit-text-decorations-in-effect: none; =
>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: 
>>> none; =
>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><div 
>>> =
>>> style=3D"word-wrap: break-word; -webkit-nbsp-mode: space; =
>>> -webkit-line-break: after-white-space; "><span 
>>> class=3D"Apple-style-span" =
>>> style=3D"border-collapse: separate; 
>>> -webkit-border-horizontal-spacing: =
>>> 0px; -webkit-border-vertical-spacing: 0px; color: rgb(0, 0, 0); =
>>> font-family: Helvetica; font-size: 12px; font-style: normal; =
>>> font-variant: normal; font-weight: normal; letter-spacing: normal; =
>>> line-height: normal; -webkit-text-decorations-in-effect: none; =
>>> text-indent: 0px; -webkit-text-size-adjust: auto; text-transform: 
>>> none; =
>>> orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; 
>>> "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><span =
>>> class=3D"Apple-style-span" style=3D"border-collapse: separate; =
>>> -webkit-border-horizontal-spacing: 0px; 
>>> -webkit-border-vertical-spacing: =
>>> 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; =
>>> font-style: normal; font-variant: normal; font-weight: normal; =
>>> letter-spacing: normal; line-height: normal; =
>>> -webkit-text-decorations-in-effect: none; text-indent: 0px; =
>>> -webkit-text-size-adjust: auto; text-transform: none; orphans: 2; =
>>> white-space: normal; widows: 2; word-spacing: 0px; "><div><font =
>>> class=3D"Apple-style-span" color=3D"#0000FF"><font =
>>> class=3D"Apple-style-span" face=3D"Gill Sans"><span =
>>> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); 
>>> font-family: =
>>> 'Gill Sans'; "><span class=3D"Apple-style-span" style=3D"color: 
>>> rgb(0, =
>>> 0, 255); font-family: 'Gill Sans'; ">Antony =
>>> Hosking</span></span></font></font><font class=3D"Apple-style-span" =
>>> face=3D"Gill Sans"><span class=3D"Apple-style-span" 
>>> style=3D"font-family: =
>>> 'Gill Sans'; "><span class=3D"Apple-style-span" style=3D"font-family: 
>>> =
>>> 'Gill Sans'; "><span 
>>> class=3D"Apple-converted-space"> </span>|<span =
>>> class=3D"Apple-converted-space"> </span></span></span><span =
>>> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; "><span 
>>> =
>>> class=3D"Apple-style-span" style=3D"font-family: 'Gill Sans'; =
>>> ">Associate Professor</span></span><span class=3D"Apple-style-span" =
>>> style=3D"font-family: 'Gill Sans'; "><span class=3D"Apple-style-span" 
>>> =
>>> style=3D"font-family: 'Gill Sans'; "> | Computer Science | 
>>> Purdue =
>>> University</span></span></font></div><div><font 
>>> class=3D"Apple-style-span"=
>>> face=3D"GillSans-Light"><span class=3D"Apple-style-span" =
>>> style=3D"font-family: GillSans-Light; ">305 N. University Street | 
>>> West =
>>> Lafayette | IN 47907 | USA</span></font></div><div><font =
>>> class=3D"Apple-style-span" color=3D"#0000FF" face=3D"Gill Sans"><span 
>>> =
>>> class=3D"Apple-style-span" style=3D"color: rgb(0, 0, 255); 
>>> font-family: =
>>> 'Gill Sans'; "><span class=3D"Apple-style-span" style=3D"color: 
>>> rgb(0, =
>>> 0, 255); font-family: 'Gill Sans'; ">Mobile</span></span></font><font 
>>> =
>>> class=3D"Apple-style-span" face=3D"GillSans-Light"><span =
>>> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; 
>>> "><span =
>>> class=3D"Apple-style-span" style=3D"font-family: GillSans-Light; 
>>> "><span =
>>> class=3D"Apple-converted-space"> </span>+1 765 427 =
>>> 5484</span></span></font></div><div><font class=3D"Apple-style-span" 
>>> =
>>> face=3D"GillSans-Light"><br =
>>> class=3D"khtml-block-placeholder"></font></div></span></span></span></span=
>>>> </span></span></span><br =
>>> class=3D"Apple-interchange-newline"></span></div></span></div></span><br 
>>> =
>>> class=3D"Apple-interchange-newline"></span><br =
>>> class=3D"Apple-interchange-newline">
>>> </div>
>>> <br></body></html>=
>>> 
>>> --Apple-Mail=_483BE841-4972-4BFD-8336-BD261CD93863--



More information about the M3devel mailing list