[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