Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-11-03

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:22 spito left #divine
09:45 spito joined #divine
10:12 spito muhaha, moje fifo je rychlejší než ta z divine
10:13 xstill :-), já se k tomu ještě nedostal
10:13 xstill kolit?
10:13 xstill *kolik?
10:14 spito naive: 3170 ms,  5292 items/ms.
10:14 spito ring 512: 2681 ms,  6257 items/ms.
10:14 spito ring 1024: 2421 ms,  6929 items/ms.
10:14 spito ring 4096: 3142 ms,  5339 items/ms.
10:14 spito Fast:  525 ms, 31956 items/ms.
10:14 spito Divine fifo:  926 ms, 18117 items/ms.
10:15 spito ale byl jsem schopný dostat se i na 60k items/ms
10:15 xstill to je kde?
10:15 spito nymfe50
10:16 xstill zajímavé, protože já když na nymfe měřil to dodané tak měl ring kolem 30k
10:16 spito no, to já včera taky
10:16 spito aisa
10:16 spito naive: 5225 ms,  3210 items/ms.
10:16 spito ring 512: 4804 ms,  3492 items/ms.
10:16 spito ring 1024: 5013 ms,  3346 items/ms.
10:16 spito ring 4096: 5021 ms,  3341 items/ms.
10:16 spito Fast:  431 ms, 38926 items/ms.
10:16 spito Divine fifo: 1910 ms,  8783 items/ms.
10:17 spito tak teď to zverifikovat
10:17 spito :)
10:17 xstill ale to je divné ne? aby to včera bylo rychlejší jen tak...
10:18 spito nevím
10:19 spito tak někdo tam něco pouští
10:20 xstill ach jo když ono jich taky běží asi 5 a na všech někdo je nebo co
10:20 xstill kdyby nevypli tu B130 aspoň
10:20 spito no, když tam nikdo neběžel, tak ten rozdíl nebyl tak propastný, ale i tak moje foronta byla rychlejší
10:20 spito *fronta
10:21 xstill on je tam všude nasáčkovaný nějaký xsabo3
10:22 spito aura je divná
10:22 spito hrozně divná
10:29 xstill divine fifo je ta z partitioned?
10:44 spito to je ta toolkit/fifo.h
10:48 mornfall no, ono se to hlavně úplně jinak chová na amd než na intelu
10:49 xstill co? DIVINE fifo?
10:49 mornfall není to zdaleka poprvé co by někdo měl rychlejší fifo
10:49 mornfall fifa obecně
10:51 xstill no on DIVINE potřebuje silnější garance než ta úloha, Jiřík chce jen komunikaci mezi 2 vlákny
10:51 mornfall to nevadí, divine taky
10:52 xstill jakto? Jsem měl pocit, že čte 1 ale zapisovat může víc
10:52 mornfall ne
10:52 xstill aha
10:55 Erbureth on tam je fifomatrix na to, ne?
10:55 Erbureth každé vlákno čte z n front
10:58 mornfall spito: každopádně to že naive a ring maj podobnej výkon znamená že je něco hrubě špatně
10:58 mornfall spito: to by měl být aspoň čtyřnásobnej rozdíl
10:59 spito já vím
11:02 mornfall P              naive: 3367 ms,  4982 items/ms.
11:02 mornfall P          ring 4096:  263 ms, 63791 items/ms.
11:02 mornfall P   combined 1024/16:  477 ms, 35172 items/ms.
11:12 Erbureth MutexQueue: 3.18705 Melems/s, out of order: 0.
11:12 Erbureth MutexQueue: 3.48709 Melems/s, out of order: 0.
11:12 Erbureth MutexQueue: 3.35125 Melems/s, out of order: 0.
11:12 Erbureth RingQueue<16>: 17.0408 Melems/s, out of order: 0.
11:12 Erbureth RingQueue<256>: 17.6566 Melems/s, out of order: 0.
11:12 Erbureth RingQueue<4096>: 17.8031 Melems/s, out of order: 0.
11:12 Erbureth ListQueue: 4.71782 Melems/s, out of order: 0.
11:12 Erbureth HybridQueue<16>: 20.6602 Melems/s, out of order: 0.
11:12 Erbureth HybridQueue<256>: 49.2324 Melems/s, out of order: 0.
11:12 Erbureth HybridQueue<4096>: 56.1374 Melems/s, out of order: 0.
11:14 xstill mornfall: co to je za stroj že máš tak rychlej ring?
11:16 mornfall xstill: tady laptop -- ale překládal jsem clangem
11:18 Erbureth A koukám, že ten úkol do IV112 se za ty roky nezměnil :)
11:18 mornfall hm, g++ je nějaký rozbitý :-)
11:18 mornfall S   combined 4096/16: 4105 ms,  4087 items/ms.
11:19 mornfall P          ring 4096:  219 ms, 76608 items/ms.
11:19 xstill ring 1024:  444 ms, 37786 items/ms.
11:19 mornfall P   combined 1024/64: 4059 ms,  4133 items/ms.
11:19 xstill asi je Ivy Bridge o dost lepší no
11:20 mornfall asi to chce přepsat na atomic-y nebo něco
12:03 spito jak se mají ošetřovat výjimky, který vyhodí vlákno při verifikaci divajnem?
12:04 spito vždycky dostanu něco takového:
12:04 spito ASSERTION FAILED (thread 1): <__cxa_throw_divine> [ cxa_exception_divine.cpp:50 ]
12:04 xstill musíš je chytat v tom vlákně
12:06 spito no to taky dělám
12:07 xstill hm, tak se podívej odkud se to vyhazuje
12:08 spito #3: <pthread_join> [ pthread.cpp:357 ] [ ptid = 65537, result = 0, ltid = @(28:0| 0), gtid = @(29:0| 0) ]
12:11 xstill tak z toho nic neplyne, pokud teda není chyba v divine pthreads
12:12 spito http://pastebin.dqd.cz/dOD3/
12:12 spito toto by mělo být v pořádku, ne?
12:12 spito se vším všudy
12:17 xstill jsi velice odvážný používat std::thread
12:18 xstill je tam někde bug který způsobí nejspíš že to vyhodí výjimku při inicializaci toho threadu
12:19 spito jo, to kvůli tomu parametru
12:20 spito ale to když se upraví, tak to vyhodí výjimku při ukončení vlákna
12:21 xstill a když to uděláš přes pthreads?
12:22 spito to jsem ještě nezkoušel
12:36 xstill no já bych si typnul, že libc++ prostě alokuje při vytváření vlákna, v tom novém vlákně. I když je to asi divné
13:34 mornfall tipnul, a já si myslim že je to tak :-)
13:39 spito jo, umí divine něco jako terminate, exit, abort a tak?
14:08 mornfall exit umí, abort_message tam taky nějaký je
14:08 mornfall abort nevím, možná :-)
14:14 mornfall spito: dej někam celej CE
16:26 mornfall hm, mám teplotu tak nevím jak to do úterka dopadne
18:32 spito mornfall: tak jo, chyba je v std::thread
18:44 spito mornfall: nebylo by od věci opravit to v std::thread? Ale to bychom kdyžtak uplácali v úterý
18:44 mornfall spito: ty moc nečteš backlogy co? ;-P
18:45 spito čtu, ;)
18:45 spito vím, že jsi nemocný
18:45 mornfall ne, šlo spíš o to že std::thread už jsme řešili
18:46 spito a? tak toto si nemapatuji....
18:46 mornfall no, že víme že je vadný a že je potřeba ho opravit :)
18:47 spito ok, tak ho opravím...v úterý
18:47 mornfall fajn :)
19:49 xstill hm dokázal jsem napsat něco so se přeložilo na "160:└─→jmp    160"
19:50 spito ?
19:50 mornfall stane se :-)
19:50 spito jak se ti to povedlo?
19:50 spito eh...
19:50 spito tak jo
19:50 xstill no to nevím zatím jak se to povedlo
19:50 mornfall třeba takový while ( flag ) když flag není volatile a překladač „ví“ že je true se přeloží přesně takhle...
19:50 mornfall while ( flag );
19:51 Erbureth if (flag) while(true); ?
19:54 xstill no jo, skoro jako while(true)
19:57 xstill hm tak zatím mám u sebe 1.5x rychlejší frontu než je ring
19:58 xstill na to že jsem to vlastně dneska nechtěl dělat dobrý
19:59 spito můžeš zkusit porovnat tu moji variantu oproti své
20:00 xstill zajímavé, zdá se že to dost závisí na náladě
20:00 xstill teď jsem dostal ring na 70k a to svoje na 170k :-D
20:02 xstill hm a teď to cyklí :-D tak nic
20:04 mornfall terminace je pro děcka
20:05 xstill kdyby to aspoň byl debug
20:08 spito xstill: vyzkoušíš to?
20:09 xstill co?
20:09 spito no moji variantu :)
20:09 spito aisa: /IV112/06
20:09 spito a přístup tam asi máš
20:11 xstill dává ti to stabilně 50-60k zhruba o 20% rychlejš než divine fifo (kompilované gcc)
20:12 spito hej, jak jsi mohl dostat 170k ?
20:12 spito ring je rychlejší?
20:12 xstill clangem to tvoje i 90-130k
20:13 xstill no já tam mám race
20:13 xstill zajímavý je že divine fifo dává clangem jen asi 30k
20:13 spito hmm
20:13 xstill docala nechápu co ten clang dělá
20:13 xstill spito: driver.cpp: 42: assertion `n + 1 == o' failed; got [11134662] != [11069164] instead
20:13 xstill Aborted
20:14 spito u toho mého?
20:14 xstill jo
20:14 spito hmm
20:15 xstill mě je docela podezřelý že ten clang build je i 2x rychlejší když tam není žádné STL
20:15 xstill to mi nepříjde normální
20:18 xstill hm zajímavé
20:18 spito tak jediný, co mě napadá je, že nedošlo k zápisu do pole
20:19 xstill hm, mě to cyklí na porovnání next pointru s nullptr ale ten next je volatile
20:19 xstill teda nejspíš
20:22 xstill nějak nechápu jak v optimalizovaném kódu můžu mít:
20:22 xstill test   %rax,%rax
20:22 xstill jne    bb
20:26 xstill jdu raději na tu prezentaci
20:31 spito jo, clang je lepší
20:31 spito ale 3.1 to buildovala pekelně dlouho
20:39 xstill gcc je fakt vtipný, mám 2 cykly v celým programu, v obou je std::abort a ono si to vesele cyklí
20:41 spito tak jsem ten svůj opravil a už to asi funguje
23:19 spito left #divine

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary