Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2016-03-26

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

All times shown according to UTC.

Time Nick Message
16:29 xstill mornfall: tohle znáš: Exploiting Object Escape and Locking Information in Partial-Order Reductions for Concurrent Object-Oriented Programs (DWYER, HATCLIFF, ROBBY, RANGANATH)? Vymysleli +- tau redukci v roce 2004 (a nad javou)
16:31 xstill oproti nám umí zámky a trochu líp se vyrovnávají s cykly, protože dělají klasický DFS cycle proviso
16:34 xstill z čehož mi plyne, že by se mělo dát zkombinovat to tvoje topologický proviso s tau redukcí, akrát mám podezření, že by to mělo efekt jen v případech, když všechny vlánka která mohou táhnout jsou na cyklu
16:35 xstill což nevím jestli stojí za to
16:36 xstill vlastně s tou mojí load optimalizací jsme zas někdy lepší my asi
16:39 mornfall tvojí?
16:39 mornfall (nicméně to že tau je specializace por se ví tak nějak od vždycky)
16:39 mornfall (bylo to tak navržený)
16:40 xstill no tím co jsem implementoval v diplomce
16:40 mornfall sloučení nezávislých loadů? to jsem asi nevěděl že je tvoje :p
16:41 mornfall nicméně s lepším c3 to jistě sloučit jde, ale nemyslim že to stojí za tu práci
16:41 mornfall hlavně topologická c3 mizerně škáluje a musela by se nějak hrozně vylepšit aby to k něčemu bylo
16:41 xstill no dobře, jsme to vymysleli na letišti cestou na SEFM, ale implementoval jsem to já
16:41 xstill jak mizerně škáluje?
16:42 mornfall no mizerně, je tam hrozně moc synchronizace (která tam nemusí nutně být, ale říkám, muselo by se to jinak implementovat)
16:43 mornfall ke konci to má silnou tendenci dělat paralelní iterace kde každá objeví jednotky stavů a je jich třeba 100 za sebou
16:43 xstill aha takhle
16:43 mornfall navíc teda pro reachability ti stačí slabší c3
16:44 xstill co tam stačí?
16:44 mornfall a druhá věc je, že když to chceš 'jednoduše' kombinovat s kompresí cesty, tak je to statický asi lepš
16:44 xstill (se mi to teď nechce hledat)
16:44 mornfall nějaký check na closed set
16:45 mornfall pokud se něco vrací do closed setu, tak se musí ten danej stav expandovat celej
16:46 xstill aha; no já bych si to asi představoval tak, že statický C3 rozhodne o tom, jestli se to má splácnout a dynamický o tom, jestli se maj pustit všechna vlánka zase
16:51 mornfall to by mohlo jít realizovat tím, že statický cycle check nebude vůbec dělat interrupt, ale bude se chovat jako assume( tento stav není v tabulce ) ... asi
16:52 mornfall pro reachabilitu to je pak potenciálně jednoduchý, s ltl to bude trochu horší
16:53 xstill no to fungovat nebude, protože on se nebude mít jak do té tabulky dostat
16:54 mornfall ho tam samozřejmě přidá
16:57 xstill jo tak, pak jo
16:58 mornfall ono by totiž bylo dost blbý kdyby to mělo scheduleru nějak vysvětlovat, že má spustit jen nějaký jedno vlákno (a který)
16:58 mornfall když divine do toho co ten scheduler vůbec považuje za vlákna vůbec nevidí :)
16:58 xstill takže by ho to tam přidalo, ale pokud by tam byl, tak by to skončilo a pokud ne, tak by to vesele pokračovalo tím samým vláknem, jo? pro reachabilitu teda
17:00 xstill proč pro LTL nestačí v tuhle chvíli ten stav plně expandovat?
17:01 mornfall stačí, to je to co se děje teď
17:01 xstill ne, myslel jsem pokud je CFG cyklus + je to už v tabulce
17:03 mornfall no když o tom tak uvažuju, tak ono asi nefunguje ani to co tam je :D
17:03 mornfall ale ne funguje, ble
17:04 xstill už jsem se lekl
17:06 mornfall hm, ale bude se to dělat blbě aj pro tu reachabilitu
17:06 mornfall ty budeš muset totiž beztak všechny ty stavy vygenerovat abys poznal že nějakej vpálil do closed setu a pak je případně jen nedat do fronty
17:07 mornfall potažmo je pak smazat (ale to by zase potřebovalo refcounting a z toho se mi trochu točí hlava...)
17:09 mornfall ono samozřejmě nedat je do fronty je taky potenciální výhra
17:10 xstill C3 říká, že žádnou akci nemůžu nekonečně odkládat, ne? Což, za předpokladu, že mám cyklus co jde projít po ample znamená, že tu akci která je odkládaná musím alespoň jednou na tom cykly povolit. to znamená že by mělo stačit zjistit jestli jsem neuzavřel cyklus chozením po ample ne? Ale zas to je podezřele jednoduchý. Nebo musím teda uvažovat i jestli nějaká z těch
17:10 xstill vypnutých akcí neuzavře cyklus? ...
17:10 xstill ... Asi mám v tom POR ještě pořád trochu hokej…
17:12 mornfall jo máš pravdu v tom, že ty nemusíš ten ample hledat, ale prostě nějakej zkusíš (jak to děláme teď) a když to neklapne (něco z toho trefí closed/zásobník) tak to expandovat
17:12 mornfall ono je teoreticky lepší vybrat takovej ample set kterej to netrefil než to expandovat
17:12 mornfall ale na to se můžem zcela jistě vykašlat
17:14 xstill ale pak by mělo fungovat to s tím assume (a dokonce i pro LTL), ne?
17:14 xstill teda pro LTL to bude podmíněnej expand
17:14 xstill vlastně asi vždycky
17:14 mornfall no to se vrací k tomu že to je to co děláme teď ne?
17:15 mornfall (pro LTL)
17:16 xstill no ne, pokud tomu CFG cyklu neodpovídá skutečnej cyklus tak by to mělo trochu pomoct
17:17 mornfall pokud to podmíníš přítomností v tabulce tak to fungovat nebude
17:18 mornfall jen se bude blbě vymýšlet protipříklad
17:18 mornfall pro LTL tam musíš udělat interrupt (pokud nemáš žádné lepší C3, které by ti řeklo že to skutečně neuzavřelo cyklus)
17:20 xstill jo to jo, to jsem myslel, ale i tak je to o trochu silnější než to control flow C3 co máme teď
17:20 mornfall teď v tom mam hokej zase já
17:21 xstill no já se trochu nejasně vyjadřuju, napsat jsem že by měl fungovat ten assume, ale v zápětí jsem dopsal, že by to měl být spíš podmíněnej expend, čímž jsem myslel podmíněnej interrupt (tj. při detekci CFG cylku uložím stav do tabulky, a pokud už tam byl, tak udělám interrupt, jinak generuju dál)
17:22 mornfall no ne, to je to co nefunguje, musíš udělat interrupt bez ohledu na to jestli to je nebo není v tabulce
17:23 mornfall no možná nemusíš, protože naše tabulka není closed set
17:23 xstill jakto, pokud to není v tabulce, tak to nemohlo uzavřít cyklus, ne?
17:24 xstill ajo, ono to předpokládá, že se stav dostane do tabulky hned po expandu
17:24 xstill což u nás teda platí, u věcí postavených na BFS alespoň
17:31 mornfall no, teď mi přijde že open+closed jako proviso by mělo fungovat aj pro LTL, ale chtělo by to mrknout do literatury a případně to dokázat
17:32 mornfall (odkládáš akce jen podél 'čerstvých' hran)
17:46 xstill jo, to se asi můžu podívat
17:46 xstill jediná nevýhoda je, že s OWCTY to bude výrazně komplikovanější kvůli tomu, že navštěvuje stavy opakovaně
18:28 xstill myslíš, že by se z toho dal udělat článek (kterej by zároveň mohl shrnout všechna vylepšení tau od tého původního článku)?

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