Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2013-05-24

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

All times shown according to UTC.

Time Nick Message
07:14 xstill mornfall:
07:15 xstill on teď pool nemůže dělat víc než 1024 * 1024 bloků?
07:22 mornfall Ne. :)
07:23 mornfall (ano, to znamená že tam je volných 20 bitů)
07:30 xstill zajímavé
07:30 xstill ale ono to dává smysl, 16TB nám bohatě stačí
07:32 xstill hmm on Pointer nemusí vědět kolik je toho v něm rezervováno na ostatní použití ne?
07:32 xbarnat joined #divine
07:34 xstill mornfall: asi by si to měl pamatovat wharf
07:34 xbarnat off topic: ke spravcum antey a anny
07:35 xbarnat kde bezi web server? a kudy se konekti ven?
07:35 xstill xbarnat: já jsem to viděl tu hlášku
07:35 xbarnat php spusteny jakoze na anna.fi.muni.cz/~xbarnat dojde na google jako ze z antey
07:35 xstill mám pocit že frontend běží na anně
07:35 xbarnat a myslim si, ze to je ten duvod proc to nejde
07:36 xstill no ale ta chyba je od googlu
07:36 xstill což je divný
07:36 xbarnat no ale to neni chyba, to je cilene zakazane a ten duvod je podle me proto, ze detekovali nejake sachy s hostname.ipadresou a kdovi cim ...
07:37 xbarnat proc to tam dorazi s IP antey?
07:37 mornfall jakej google?
07:37 xbarnat viz email
07:38 xbarnat jestlio treba webserver nema nekde v konfiguraci pomichane IP ...
07:38 xstill no ono php asi běží na antee
07:38 mornfall Co je na tom divnýho?
07:39 mornfall Jistě, nginx běží na anně, php na antee.
07:39 mornfall Když děláš http get v php skriptu, tak je jasný že bude mít IP adresu toho stroje kde běží.
07:39 xbarnat na tom divnyho neni nic, az na tu hlasku od Google, ze my to zakazali stahovat phpkem veci od nich a neni to ban kvuli trafficu, ten totiz vypada jinak
07:40 xbarnat spis detekovali "nestandardni" konfiguraci ...
07:40 xbarnat takze vlastne se chci zeptat jestli je mozne php presmerovat pres nginx na anne
07:41 mornfall na tý konfiguraci není nic nestandardního... to s nginxem nemá vůbec nic společnýho
07:41 mornfall kdybys to napsal v bashi tak to udělá přesně to stejný
07:41 xbarnat hm tak mam smulu ...  dik
07:41 mornfall (a spustil z příkazový řádky)
07:41 Erbureth xstill: 16 TB bude stačit každému? :)
07:41 mornfall Erbureth: Pár let jo, a furt máme dost bitů abychom to zvětšili kdyby bylo potřeba.
07:42 xstill ono je otázka jestli nemají nějakou ochranu proti automatickým přístupům, pokud je dokáží detekovat
07:42 mornfall Erbureth: To je jedna compile-time konstanta.
07:42 Erbureth však jasný
07:42 xstill i když zase oni neví, že server běží jinde, žejo
07:42 mornfall xstill: No, nedivil bych se. :)
07:42 xstill takže jak to poznají...
07:42 mornfall xstill: Já furt nechápu jak to souvisí s nějakým serverem.
07:42 xstill asi nijak]
07:42 mornfall Z antey udělám get.
07:42 mornfall Je úplně jedno co za program ten get dělá.
07:42 mornfall Detekujou to nejspíš podle useragenta.
07:43 xstill s tím bych asi souhlasil
07:43 mornfall Případně podle toho že zahodíš koláčky.
07:43 mornfall sušenky, cokoliv
07:43 xstill to by chtělo mu poslat nějakýho veselýho
07:43 xstill (useragenta)
07:43 xstill ale funguje to i bez sušenek (w3m)
07:44 mornfall ale curl "http://scholar.google.cz/scholar?q=autor:%22Jiri+Barnat%22&hl=cs&num=20" nefunguje žejo
07:44 xstill takže jedině že by banovali useragenty webserverů
07:44 xstill hmm
07:45 mornfall curl -A "Mozilla/3.0"  "http://scholar.google.cz/scholar?q=autor:%22Jiri+Barnat%22&hl=cs&num=20" ale funguje
07:45 mornfall xbarnat: tak si to přeber
07:45 xstill jsem se zrovna chtěl zeptat
07:45 xstill chce to v tom php nastavit user-agenta
07:45 xstill dost blbá ochrana teda
07:46 mornfall xstill: tak, to je ochrana hlavně uživatelů :-)
07:46 xbarnat novidite, to je pozitivni pristup k veci ...
07:46 mornfall xstill: protože to co ti to vrátí je stejně k ničemu
07:46 xstill xbarnat: jak to tam vlastně používáš?
07:46 xstill nemají nějaké API?
07:47 mornfall nemají
07:48 xstill mornfall: souhlasíš teda s tím aby si wharf pamatoval, kolik je rezervováno bitů?
07:48 mornfall můžeš to chápat jako tagsoup
07:48 mornfall ale prostě to bude bolet :-)
07:48 xstill to já nejím
07:48 mornfall a nejspíš to nebude moc fungovat, aspoň ne dlouhodobě
07:49 mornfall xstill: No, spíš by si to měl pamatovat Lake.
07:49 xbarnat pridal jsem do php nasledujici radek, a uz to funguje! Kluci vy jste tak chytri ... ini_set('user_agent', 'Mozilla/5.0');
07:49 mornfall xstill: Ale počítám že nic jinýho než assert s tím stejně dělat nebudeš?
07:50 xstill no to nevím, jsem i přemejšlel, že by se to při dereferenci odmaskovalo, ale to by mohlo zdržovat...
07:51 xstill a asi je to divný...
07:51 mornfall xstill: no, to je hlavně zbytečný, prostě ten bitfield uprav tak aby těch prvních 20 bitů bylo "volných"
07:51 xstill bych to vyřešil tak, že při MPI serializaci se to tam připíše, a při přijetí se to odstraní z lokálních...
07:51 mornfall problem solved :-)
07:52 xstill mornfall: pak není třeba nic rezervovat...
07:52 mornfall (nebo 16, a budeš mít rezervu do 64TB)
07:52 mornfall však jo
07:52 xstill hmm, to by šlo
07:53 xstill 64TB bude chvíli stačit
07:54 xstill mornfall: má to být přístupné jako field pointru? Třeba tag?
07:54 mornfall xstill: Tľeba.
07:54 mornfall třeba*
07:55 xstill ok to by potom mohl využít i spito, nevím jestli to teda už nevyřešil...
07:56 mornfall nemohl :)
07:56 xstill proč?
07:56 mornfall protože pointer není sdílenej mezi vláknama, jen to na co ukazuje
07:56 xstill ale parent pointer je, jenže to je zase Handle...
07:57 mornfall to že může využít vrchní bity Handlu ví, žejo :-)
07:57 mornfall teda snad :-)
07:57 mornfall ještě možná neví že se musí koordinovat s MPI
07:58 xstill no já to asi vrazím na spodek tag-u, když to bude bitfieldem...
07:58 xstill takže vršek bude furt 0
07:59 xstill mornfall: jak je velký Block (na položky)?
08:00 mornfall to záleží
08:00 mornfall int total = std::max( (2048 * 1024) / size, 64 ); // at least 64 items, otherwise 2M
08:00 mornfall (viz implementace newblock)
08:00 xstill aha
08:03 xstill mornfall: ještě bych ti teda kvůli tý rezervaci upravil Pond, navrhoval bych udělat tam pointer 2*64bit a přesunout do něj velikost
08:04 xstill což teda nebude úplně ideální na to zamykání...
08:04 xstill ale jinak se ty bity rezervovat asi nedají
08:08 xstill ono je otázka jestli nám ten Pond vůbec pomáhá nějak...
08:09 xstill ale asi jo, protože Lake se může rozbít
08:09 mornfall jo, to je jasný
08:36 xstill No jo jenže kdybych chtěl přesunout velikost do Pond::Pointer tak zase nebude fungovat fromRaw.
08:43 mornfall Počítám že zbavit se fromRaw se jen tak nejde?
08:45 xstill používá se nějak v CESMI
08:45 xstill jinak asi jen v operátorech stramů
08:45 mornfall jo, cesmi potřebuje ten pointer narvat do 64b
08:46 xstill a v NTree kde se ho ale zbavit můžu
08:46 xstill proč to cesmi potřebuje?
08:48 xstill stejně je cesmi_handle jako raw + char*
08:49 xstill *cesmi_node
08:49 xstill problém je spíš to, že cesmi_node nemůže obsahovat Pointer přímo asi, když je to C struktura
08:50 xstill a hlavně teda není parametrizovatelná typem Poolu tím pádem
08:50 xstill to je blbé
08:51 mornfall ... :-)
08:51 mornfall no, musíš fixovat jak velká ta věc je
08:57 mornfall xbarnat: Když chci hledat nějakého Javistu kterej by upravil SpinS aby uměl generovat CESMI, mám si to vypsat sám nebo zkusíš rozhodit sítě?
09:03 mornfall Někde mám bug. To je sviňárna.
09:06 xstill zkompiloval jsem metrics s modifikovanými inity :-)
09:06 mornfall :-)
09:07 mornfall já zkompiloval libstdc++
09:07 mornfall jen mi nepochopitelně něco mangluje definici lseek
09:10 xstill to je cčková funkce ne?
09:11 mornfall taky je kolem ní extern "C"
09:11 mornfall ve stejným bloku je asi 6 fcí
09:11 mornfall a všechny jsou OK, jen lseek je blbě
09:11 mornfall aha
09:11 mornfall protože jsem idiot :D
09:12 mornfall zajímavý je, že platí prototyp a překladač ani nemukne že to extern "C" nic nedělá
09:13 xstill co?
09:15 mornfall int lseek( int, int, int ); extern "C" int lseek( int, int, int ) { ... }
09:15 mornfall přeloží a zmangluje
09:15 xstill to není redefinice? wtf
09:17 mornfall cokoliv :-)
09:17 mornfall exploring...  /home/mornfall/dev/divine/mainline/divine/llvm/machine.h: 99: assertion `int( v.v.offset + v.offset + v.v.width ) <= datasize( i )' failed; got [107] > [101] instead
09:17 mornfall tohle je ovšem zajímavé
09:21 xstill hmm v MPI bude boj kdy uvolnit Vertex, a taky jak, vzhledem k tomu, že nemáš jeho store
09:22 xstill mornfall: hmm, potřebujeme vůbec mít celý from stav? Nestačí nám jen extension?
09:23 mornfall isAccepting
09:23 xstill kde?
09:23 mornfall OWCTY
09:23 xstill aha map
09:23 mornfall MAP
09:25 xstill no tam je problém docela s tím uvolňováním, protože ten Vertex se tam může rozmnožit
09:25 mornfall a nestačí v edge prostě uvolnit stavy který nepatří tomuhle MPI uzlu?
09:26 xstill asi jo
09:26 mornfall a neříkali jsme že Vertex bez storu se nebude množit?
09:26 * mornfall si už nepamatuje
09:26 mornfall ale někde v backlogu to bude ;-)
09:27 xstill no on se právě se musí umět kopírovat asi
09:27 xstill v backlogu to nebude, říkali jsem si to v labu ;-)
09:27 mornfall kruci
09:27 mornfall neměl bych tam tolik chodit, pak se ztrácí informace :-)
09:28 mornfall A xbarnat nás ignoruje...
09:29 mornfall A unix@fi taky boduje
09:30 mornfall Takovou správu ať si strčí za klobouk.
09:30 xstill jo no, někdo by jim měl připomenout jak to bylo s financováním aury...
09:37 xstill mornfall: navíc teda v Transition určitě nemůže být Handle
09:38 xstill nevím ale jestli se Transition netýká i lokálních IPC front...
09:39 xstill asi jo co
09:40 mornfall Který Transition?
09:41 mornfall To z instances/definitions.h?
09:41 xstill jo
09:42 xstill už jsem k tomu došel v topology
09:43 mornfall Mít tam Vertex je sice trochu škoda, ale teď když jsou IPC fronty krátké, tak to snad tolik nevadí.
09:43 xstill ono je to docela problematické, protože už v IPC frontě musíš mít přístup k storu
09:43 mornfall Jakto?
09:43 xstill teda ve visitoru
09:43 xstill ne přímo ve frontě
09:43 mornfall Visitor má přístup ke storu z principu.
09:44 mornfall Store je de-facto komponenta Visitora.
09:44 xstill já vím
09:45 mornfall Ale jak to teda bylo? Dá se tam Vertex, když je ten Vertex remote tak bude mít invalid handle a valid node.
09:45 xstill hmm když tam nacpu Vertex tak to bude skoro fungovat, stále je problém kdy to uvolnit
09:45 xstill mornfall: jo tak jsme to říkali
09:46 xstill jen teda to že handle je invalid se pozná tak, že má id někoho jíného
09:47 xstill Ono vůbec, ty v tom Partitioned předpokládáš, že libovolný store dokáže z Handle udělat Vertex.
09:48 mornfall Kde?
09:48 xstill no v Partioned::run (visitor.h:312)
09:48 mornfall To je možná bug. :)
09:49 xstill ono s NTree to samozřejmě funguje, protože je na to dělaný
09:49 xstill ono nepotřebuje ani ten store, jen Pool
09:49 xstill (libovolný)
09:49 mornfall No, já nechtěl cpát Vertex do front, protože je 3x větší než Handle.
09:50 mornfall Ale nejspíš to jinak nepůjde. :)
09:50 mornfall Dokud mají IPC fronty pár set stavů tak je to jedno.
09:51 mornfall A v lokální frontě ten Handle být může.
09:51 xstill tak může, pokud to dokáže složit libovolný store na stroji (v shared)
09:52 xstill řekl bych, že to by měl být skoro požadavek, jinak se z toho zblázníme
09:52 mornfall No, to snad Shared musí z principu ne? :)
09:52 mornfall Shared má společnej store.
09:52 xstill no nemá, má společnou tabulku ve store
09:53 xstill ale to je pro toto asi jedno
09:53 mornfall To je čistě slovíčkaření.
09:55 mornfall Vlastnictví stavu je přesně to co rozlišuje Shared a Partitioned store.
09:56 xstill jo no
10:00 xbarnat jsem zde z5
10:01 xbarnat mornfall: klidne si to vypis, muzu to klidne vypsat ja ...
10:01 xbarnat a ano ignoruji vas
10:03 mornfall xbarnat: jaký máme „podíl“ na auře?
10:06 xbarnat no ustni dohoda znela tak, ze za tech cca 75% financnich porizovacich nakladu, budeme mit jakoze prednostni pravo vypoctuto dame k dispozici  CVT
10:06 xbarnat ten stroj jako celek a bude ho CVT spravovat dle fakutlnich standardu
10:07 xbarnat takze jakoze tlacit na ne ze jsme si to koupili my a at to tam k...a dodelaji se mi moc nechce ...
10:07 mornfall CVT platilo těch 25 nebo těch 75?
10:08 xbarnat fakulta platila 25%
10:08 xbarnat mozna by slo s nima domluvit nejakou virtualizaci?
10:08 mornfall zvážím to
10:08 mornfall zdá se že fakultní standard je dost nízký
10:08 xbarnat to je
10:08 xstill vistualizace nám moc k ničemu nebude ne? Už tak není aura až tak rychlá...
10:09 xbarnat virtualizace nezere temer zadny vykon
10:09 mornfall no na manwe s tím bylo dost potíží
10:09 xbarnat j s cim, ze to pouzivalo mnoho lidi zaroven?
10:10 mornfall v principu nežere, ale SMP v KVM není úplně optimální
10:10 mornfall z nějakýho důvodu
10:10 xstill jo jenže pochybuju že nám exklizině přidělí 32 procesorů a 250GB ram...
10:10 xstill a potom je nám to dost na nic
10:11 xbarnat no problem je, ze ja nemam dostatecne technicke zazemi na to abych se s nima o tom bavil ...
10:11 xbarnat a pokud na cvt dospeli k zaveru, ze NIX je nebezpecny ...
10:11 xstill mornfall: lze nix provozovat aniž by daemon běžel pod rootem
10:11 xbarnat nebo, ze je to bude stat prilis mnoho usili na spravu
10:11 xstill xbarnat: myslím, že  se jim do toho nechce
10:11 mornfall xbarnat: ne, oni dospěli k názoru že jsou na to příliš líní
10:12 mornfall protože prostě těch pár hodin času nemají nebo nevim
10:12 mornfall cokoliv
10:12 mornfall já jim napíšu
10:12 xbarnat jde odpovedet, presneji at uvedou duvody proc ne ...
10:12 xstill mornfall: jesli by nám nestačilo aby to tam někdo nainstaloval a my jsme si pak ten nix spravovali sami?
10:12 mornfall no, já asi zkusim zatlačit na sdílenou správu
10:13 mornfall to se jim nebude zdát, ale možná jim pak přijde instalace nixu jako rozumná propozice
10:15 mornfall resource management doteď nejspíš ani nezačali řešit
10:15 mornfall je to k zlosti
10:15 xstill xbarnat: proč vlastně lab nechal CVT spravovat auru, když platil většinu? To není moc výhodné.
10:16 mornfall xstill: No, je a není.
10:16 mornfall Myšlenka byla že to budou spravovat trochu líp, a že na to mají mnohem víc prostředků než my.
10:16 xstill teď to vypadá, že není dost převažuju
10:16 xbarnat no protoze ji neplatil celou, a protoze ted fakulta plati jeji provoz
10:17 mornfall provoz by fakulta platila tak jako tak, ne? nebo se přeúčtovává pronájem?
10:17 mornfall za B104 nebo kde to teď máme stroje?
10:17 xbarnat zatim ne
10:17 xbarnat ale aura nestoji v B104, ze?
10:18 xstill pochybuju, bude trochu větší
10:18 mornfall no já jen říkám že kdyby stála, tak to nákladově pro FI neudělá žádnej rozdíl
10:18 xbarnat takze by nekdo od nas musel mit pristup do fakultnich servroven, atd atd ...
10:18 xbarnat tam to nejde kvuli klimatizaci a dodavce el. energie
10:19 xstill to je asi fakt
10:19 mornfall no, jde mi spíš o to, že fakulta platí provoz všech strojů na FI, tak jako tak
10:20 mornfall ale o to nejde
10:20 mornfall jde o to, že tak jak věci stojí je spousta práce navíc cokoliv na auře dělat
10:23 mornfall a pro cvt není ani v nejmenším priorita situaci nějak zlepšit
10:24 mornfall jsou to skoro 3 týdny co jsem od nich chtěl dvě věci, a v podstatě se doiterovalo k tomu, že nic z toho řešit nebudou, resp. nad jednou se "zamyslí" a na druhou nemají čas
10:31 mornfall jako alternativu můžu zkusit nějak ubít statický build divinu
10:32 xstill to nám bohužel pomůže jen částečně, LLVM to neřeší...
10:32 xstill a zbuildovat divine na auře není problém
10:33 xstill problém jsou závislosti
10:33 xstill teda problém to není zbuildovat po té, co jsem si udělal asi 3 moduly
10:33 mornfall no, proto statický build... resp. nabušit to tak aby nám hydra vyrobila něco co dokážu rozbalit a spustit aj tam
10:33 mornfall s clangem, llvm, ld.gold, etc.
10:34 xstill hmm, to by asi nebylo od věci
10:34 mornfall nebylo, jen je s tím spousta sraní
10:34 xstill tak to nech na později, ono to nějak jde
10:34 xstill i když to dost bolí to tam udělat
10:35 mornfall tak, ono taky bolí že se to musí dělat ručně... benchmark tool by jinak mohl umět použít libovolnej build z nixu, případně dva srovnat
10:35 mornfall jenže s aurou jsme nahraní
10:36 mornfall to je jedno
10:36 mornfall jdu radši cvičit
10:39 xstill benchmark tool na auře bude taky problém no, ono už jenom to, že budem potřebovat na to specielního uživatele...
10:53 mornfall xstill: pokud jde o nix, ono ho jde nainstalovat aj úplně bez roota, ale museli bychom všechny závislosti na auře překompilovat
10:55 mornfall jen teda kdyby měla aura duplikovat (i kdyby jen 64b) buildy divinu, tak nebude dělat nic jinýho...
10:58 xstill mornfall: co je potřeba aby to fungovalo bez rebuildu /nix/store ?
10:58 mornfall no, mít /nix/store :)
10:58 mornfall problém je v těch cestách
10:59 mornfall kdo ten /nix/store vlastní je v podstatě jedno
10:59 xstill to by nám sakra dát mohli + uživatele pod kterým nix poběží
10:59 xstill neměli by s tím skoro práci
10:59 mornfall mohli no
10:59 xstill by sme si to i nainstalovali když už budeme mít toho uživatele
11:00 mornfall potřebujeme /nix vlastněný nějakým uživatelem kterýmu můžem dát ssh klíče
11:04 mornfall ostatní už nějak vybojujem
11:04 xstill to nechceme moc...
11:07 mornfall tak, preferoval bych system-wide instalaci, ale tohle je akceptovatelnej fallback
11:09 xstill tak jako ideální by bylo kdyby jim došlo, že můžou zahodit ten prakticky nefungující systém modulů a naistalovat všude nix, žejo...
11:09 mornfall v to jsem samozřejmě doufal taky
11:09 xstill podle mě jim nedošlo, co vlatně nix je...
11:10 mornfall ale to by nebyl unix@fi aby nelpěl na šmodrchanici ušmudlanejch skriptů snad z devadesátejch let :-)
11:11 xstill on problém není, ze kdy to je, ale v tom, že to nemůže fungovat přes několik distribucí...
11:12 xstill a že se s tím špatně dělá
11:12 xstill a vůbec
11:12 mornfall no fungovat to může :-)
11:12 xstill pokud tam ručně nainstaluješ glibc a vůbec všechno do modulů
11:12 mornfall jen musíš moduly příslušně pojmenovat a tak
11:13 mornfall nebo nainstalovat do modulů všechno no
11:13 xstill ale to ti rozbije zbytek systému
11:13 mornfall Linux From Scratch
11:14 xstill furt to segví
11:16 mornfall to máš dobrý, mně se nějak nevejdou parametry do framu :D
11:16 mornfall v call-u
12:27 mornfall No.
12:32 mornfall Ha, ale to je veselej bug. :-)
13:02 mornfall Achjo, proč je to tak rozbitýýýý.
13:20 mornfall „One man can be pretty dumb sometimes, but for real bona fide stupidity there ain't nothing can beat teamwork.“ -- Mark Twain
13:24 xstill co se děje?
13:25 mornfall Nic, ale pobavilo mě to.
13:25 mornfall Teda krom toho že divine nefunguje.
13:25 xstill ani mě, dostal jsem teď super hlášku
13:25 xstill WARNING: A process refused to die!
13:25 mornfall :-)
13:26 xstill navíc teda spustit divine u mě trvá tak alespoň 10s...
13:30 Erbureth divine nefunguje?
13:33 xstill Erbureth: mainline asi funguje, ale já překopávám MPI a Mornfall llvm...
13:33 Erbureth ook .)
13:35 xstill veselé, obě instance lehli na to, že fifo.head == tail == nullptr... WTF
13:37 mornfall Vidím to tak že dopiju kafe a půjdu na vlak dom. :D
13:39 xstill já zase určitě nemám asserty sakra
13:42 xstill mornfall: máš představu jestli MPI fungovalo, než jsi udělal nový Pool?
13:44 mornfall nemám :-)
13:46 xstill ok
15:01 xstill mornfall: neměla by v Comms existovat fronta i pro všechny vzdálené workery?
15:14 xstill potom to totiž funguje ;-)
15:14 xstill (tak nějak zhruba teď)
15:17 spito joined #divine
15:22 xstill proč to potom ale funguje v 3.0?
15:22 mornfall to je divný ne? :)
15:22 mornfall protože comms obsahuje frontu pro každej thread, je jedno na jakým MPI uzlu
15:23 xstill no právě ale teď se to nastavovalo na počet lokálních
15:23 mornfall tak to je nějakej novej bug
15:24 xstill hm, tak ne
15:24 mornfall comms().resize( pernode * mpi.size() );
15:24 xstill jo vidím to byla moje chyba
15:24 xstill já jsem to totiž resiznul potom spátky omylem
15:25 xstill to se potom člověk diví
15:25 mornfall :-))
15:26 xstill protože jsem to totiž zkopíroval i s inicializací slaves do jiné funkce, která se samozřejmě zavolala až po konstruktoru MPI
15:28 mornfall tak, hlavně že to funguje :-)
15:32 xstill přidám extension(...) do Vertex aby každý algoritmus neduplikoval kód který bude testovat odkud se to má číst
15:35 mornfall jasně
15:35 xstill ono už tam dokonce nějak je
15:36 mornfall :-)
15:36 xstill tys ho tam asi přidal když jsi předělával store
15:37 mornfall nejspíš
15:37 mornfall empty base optimisation FTW
15:37 mornfall všechno špatně :-)
15:37 mornfall nebo empty field nebo cokoliv
15:38 mornfall každopádně LLVM mi řekne allocsize 1, a pak se můžu divit že ty pointry ukazujou úplně do hajzlu
15:38 mornfall když jsou o bajt posunutý...
15:38 xstill Hmm jenže ono v případě remote Vertexu nemůže fungovat, protože tam není ten store.
15:39 mornfall Však když tam není handle tak ten store nepotřebuješ.
15:39 xstill no ale potřebuju pool
15:40 xstill to abych si ho tam hodil jako parametr a on se povětšinou nepoužije
15:40 mornfall to by nemuselo nutně vadit, i když se tím trochu zeškaredí edge
15:40 mornfall prostě tomu dáš store kterej máš zrovna po ruce
15:40 xstill proč edge?
15:40 mornfall a z invalid _h poznáš jak se věci mají
15:40 xstill aha
15:40 mornfall no, v edge bys ten _s měl doplnit když je nula
15:41 xstill takže chceš po vytažení Vertex-u z fronty tam docpat store
15:41 mornfall asi to je smysluplný, ne?
15:42 mornfall to je jen nápad :-)
15:42 xstill tam je problém, že potom musíš detekovat validitu handlu podle id ve store a nepoznáš jestli je z jiného MPI node nebo jen jiného local workra
15:43 mornfall já měl za to že tam prostě vrazíš nulu, nebo nějakou podobnou speciální hodnotu?
15:43 mornfall když tam bude opravdovej handle odněkud jinud bude to silně matoucí
15:43 xstill no to je ale potřeba kvůli protipříkladům...
15:44 xstill ten handle odjinud
15:44 mornfall ajo :D
15:44 xstill to je ten průšvih
15:44 mornfall tak on to není zas tak velkej průšvih
15:46 xstill jako ono by nevadilo, že se nepozná jestli je ten from lokální nebo ne, jenže on se musí uvolnit někdy
15:46 mornfall takovejhle divnej vertex bude existovat jen chvíli v edge
15:46 mornfall no v edge víš že tam byl null store, takže víš že ho máš uvolnit
15:46 mornfall nebo nevíš?
15:47 xstill no to dejme tomu jo
15:47 mornfall dokonce ani ne v edge
15:47 mornfall to můžeš uvolňovat rovnou v run() v partitioned
15:47 xstill tam asi nemám store
15:47 xstill nějak rozumně
15:47 mornfall co bys neměl store
15:48 mornfall jasně že máš store
15:48 mornfall nedávno jsi odtama mazal store().vertex( std::get< 0 >( p ) ...
15:48 xstill dobře tam mám
15:48 xstill jsem byl jinde
15:48 mornfall takže prostě před bfv.edge tam šoupneš store
15:49 mornfall a když se bfv.edge vrátí tak to smažeš
15:49 mornfall a asi to celý vytáhneš do extra metody protože ten run je nějakej hlubokej ;-)
15:50 xstill jo ale to předpokládá, že ~Vertex to nesmaže protože nebude sedět id, ale to nebude sedět ani pro lokální
15:50 xstill (z jiného vlákna)
15:50 xstill což znamená, že ty from budou dělat bordel
15:50 mornfall ah, ty do handle nepíšeš mpi rank?
15:51 xstill a ví ho store?
15:51 xstill pokud jo tak ho tam klidně napíšu
15:51 mornfall můžeš ho přidat do WithID asi
15:51 xstill ok, to zní rozumně
15:53 mornfall pak Vertex kterej má (rankem) cizí store pozná že si nemá mazat node v destruktoru
15:54 mornfall (a přidáš mu nějakou metodu která ho smaže jen když je cizí)
15:54 mornfall (a tu uplatníš v tom run...)
15:54 xstill jo
15:54 xstill to řeší asi skoro všechno
15:55 xstill ale co udělat s tím Pondem nevím, nejraději bych ho zakázal pro všechno co je MPI, NTree nebo Shared
15:55 mornfall tak to je asi otázka jestli to někdo chce jako debugovátko :-)
15:56 mornfall já su s tou podporou valgrindu v Lake asi docela spokojenej
15:56 xstill já taky, je to asi lepší než bez toho
15:56 mornfall nemáme redzony, co je trochu smutný
15:56 xstill jaký redzony?
15:56 mornfall ale nevim jestli má cenu se s nima dělat
15:57 mornfall no, redzone je zóna nikoho kolem alokovaného bloku
15:57 mornfall abys poznal žes to projel
15:57 xstill aha
15:57 xstill ale to ti pomůže jen pokud to přejedeš trochu ne?
15:57 mornfall protože když je ta paměť těsně za sebou tak poznáš leda kulový žes něco přepsal :)
15:58 mornfall no, to záleží jestli to je skokem nebo krokem
15:58 mornfall když píšeš každej 10 bajt tak se ti může stát že menší redzone prostě přeskočíš
15:59 xstill a valgrind nedělá nějakou větší magii? (i když to asi nejde moc)
15:59 mornfall ale můžeme je v podstatě přidat jako compile-time parametr
15:59 xstill ale jo šlo by to možná
15:59 mornfall když se někomu bude chtít
15:59 mornfall no nešlo, pokud nemáš pointer tracking ala divine :-)
16:00 xstill to jsem přesně myslel ;-)
16:00 mornfall když spočítáš nějakej pointer a ten ukazuje do validní paměti tak prostě ukazuje do validní paměti
16:00 xstill a proto bysme měli dodělat verifikaci paměti a ukazovat, že jsme lepší než valgrind.
16:01 mornfall když se to vezme kolem a kolem, tak divine má taky jenom redzony, jen jsou virtuální a fakt velký :-)
16:02 xstill jakto, ono to může utýct?
16:02 mornfall no, jde to ošetřit aby nemohlo, ale nevím jistě jestli to děláme
16:03 mornfall může se ti protočit offset tak že ti ukazuje zpátky do validního kusu toho objektu
16:03 mornfall ale nemůže projet do sousedního
16:03 mornfall a dát tam check je asi dost jednoduchý
16:04 xstill jako že dojde k overflow indexu?
16:05 mornfall Hmm. Tohle by se mohlo napsat do TRACu, protože teď to děláme relativně blbě. :)
16:05 mornfall Jakože program kterej ten pointr bitcastuje na integer to asi může rozbít.
16:05 mornfall Ale jde to opravit aby nemohl.
16:06 mornfall (furt by teda musel ujet o relativně přesně 16K)
16:07 mornfall Taky je možný že zrovna teď bitcast na integer, aritmetika a bitcast zpátky na pointer vyrobí nějakou úplnou haluz...
16:07 mornfall Ale řešit to budu jindy. :-)
16:08 mornfall Teď musím dořešit ty prázdný podstruktury.
16:11 mornfall bingo
16:12 mornfall No a teď tohle... BAD DEREFERENCE (thread 0): <_ZNKSt4lessIiEclERKiS2_> [ libstdc++/bits/stl_function.h:237 ] << %8 = load i32* %7, align 4, !dbg !16610 >>
16:13 xstill MPI rank jde od 0, že?
16:14 mornfall jj
16:45 xbarnat joined #divine
16:46 xbarnat left #divine
16:50 mornfall to se tu moc neohřál :)
17:00 xstill sakra proč se na 2. instanci nenastaví id storu
17:09 xstill teda debugovat přes mpi je dost na nic
17:09 xstill ale ten bug byl pěkně hloupý
18:04 xstill tak a jsem v hajzlu, zacyklilo mi to v lookupAndApplyID
18:04 xstill mornfall: co to vůbec má dělat?
18:06 mornfall :-)
18:07 mornfall To jde z member function pointru na číslo a zpátky.
18:07 mornfall Nevim co přesně z hlavy.
18:07 mornfall Asi to znamená žes po MPI zavolal metodu která neexistuje.
18:07 xstill někak se tomu podařilo cyklit
18:07 xstill to je divné
18:07 mornfall nemáš nějakej mišmaš v bitstream operátorech?
18:08 xstill nevím
18:08 xstill můžu nějak skočit v gdb na specifickej frame?
18:08 xstill nebo až úplně dolu?
18:08 mornfall up 1000
18:08 mornfall (10000, etc)
18:09 xstill jo 55430 ;-)
18:09 xstill aha jenže tady nic nezjistím, protože to zalovlal ten druhý proces
18:09 xstill sakra
18:10 xstill takže vím jen že volal něco co má id 4
18:10 mornfall jakej to byl algoritmus? :)
18:10 mornfall ALGORITHM_RPC_ID( Owcty, 4, _counterexample );
18:10 mornfall Třeba. :)
18:11 mornfall až teda na to že ALGORITHM_RPC_ID( Owcty, 2, _reachability );
18:11 mornfall (protože někde tam je + 2)
18:12 xstill reachablility
18:12 xstill mrknu tam
18:12 xstill 4 je _por_worker
18:13 mornfall _parentTrace
18:13 xstill aha
18:13 mornfall (+ 2)
18:13 mornfall asi
18:13 mornfall ale moc nerozumím proč by se to mělo zacyklit teda
18:14 xstill ono je to divný protože jí to najde a pak z Apply::grab to skočí zase na další ring
18:14 xstill a tak pořád asi
18:14 mornfall Aha, ring. :)
18:15 xstill co?
18:15 mornfall A není to jen tím že ring nepozná že už všichni byli a jede furt dokola?
18:16 xstill já vůbec nevím jak to funguje
18:16 xstill je to možný
18:16 xstill jak to má poznat?
18:17 mornfall to je docela dobrá otázka
18:17 xstill neměl by to prostě 1x projet?
18:17 mornfall if ( !async_retval.empty() )
18:17 mornfall return Done;
18:18 mornfall Hmm.
18:18 xstill kde?
18:18 mornfall parallel.h
18:18 mornfall ale to je stejně divný
18:18 xstill aha
18:19 mornfall no, tady tohle by to mělo skutečně ukončit
18:19 mornfall má async_retval dobrej pool?
18:20 mornfall parallel.h:494 -- tady se tam ta hodnota zapíše
18:20 mornfall když máš rank 0
18:21 xstill ty čísla řádků už asi dávno nesedí, pool by měl bejt dobrej
18:21 mornfall RingFromRemote::operator()
18:21 xstill vo vidím
18:22 xstill no jenže on jako spustí ring znovu jen u sebe nebo co
18:22 xstill ne to je asi blbost
18:26 xstill mornfall: není prostě ta rekurze jen moc dlouhá ale konečná?
18:26 xstill on totiž je tam všude assert na šablonovanou hodnotu, takže se to nedá inlinovat...
18:27 xstill dám ten assert statický
18:30 xstill aha to nejde
18:31 xstill skusím menší model
18:31 mornfall :-)
18:33 xstill empty.dve funguje. to by asi chtělo udělat jinak ten ring
18:33 xstill jdu najít malej model co neplatí
18:33 mornfall ale ten ring se neměl volat rekurzivně
18:34 xstill tak nevím kde je problém
18:34 xstill on se nevolá přímo, on se pak volá loop
18:34 mornfall jasně
18:34 xstill a z něj další ring a tak...
18:34 mornfall ale prostě když je aktivní jeden ring tak už další spustit nefunguje
18:34 mornfall to se nejspíš hrozně rozbije :)
18:35 mornfall vypadá to že někde v generování protipříkladu je chyba
18:35 xstill nemyslím si, že CE skouštěl ring v ringu
18:35 xstill ale podívám se
18:37 xstill nevolá se uvnitř
18:38 xstill mornfall: krátký protipříklad se vygeneroval
18:38 mornfall Zajímavý.
18:39 mornfall A ten stack je napřeskáčku loop a ring?
18:39 mornfall To by asi dávalo smysl.
18:39 xstill myslím že jo
18:39 xstill už jsem to zavřel
18:40 mornfall Protože na slave nodu nikde nevidím že by se to někdy vrátilo z toho nested loopu.
18:40 xstill to bude asi ono
18:40 xstill ale já nevím moc co to dělá
18:40 xstill to RPC je pro mě magie
18:40 mornfall no, to si posouvá token
18:41 mornfall to není moc věc RPC
18:41 mornfall ten loop() je spíš MPI
18:41 mornfall prostě loop() je event loop, čeká až něco přijde po síti a podle toho něco dělá
18:42 mornfall potřebuješ přidat TAG_(RING_)DONE kterej jen udělá return Done v parallel.h v Loop process(...)
18:43 mornfall a v ring( ... ) v parallel.h udělat notifySlaves( _lock, TAG_DONE ... )
18:43 xstill hmm a to mám dělat já?
18:43 mornfall tak, nemusíš nutně :-)
18:43 mornfall můžeš to napsat do TRACu
18:44 xstill uvidím až to bude nějak fungovat s NTree...
18:44 mornfall pokud to jinak funguje
18:45 xstill zdá se že jo
18:52 xstill na první pohled to vypadá že i NTree funguje
18:55 xstill to je v pořákdu, že délky některých front jsou záporné?
19:28 xstill sakra
19:33 mornfall no, asi by bylo lepší ty počítadla posílat prioritně
19:33 mornfall MPI je v tomhle nějaké popletené
19:34 mornfall ale jo, není to nový problém :)
19:34 xstill jaká počítadla? fronty?
19:35 mornfall statistiky
19:37 xstill jo jen mi to přišlo divné, teď je tam třeba řádově -100000
19:39 xstill jak kompiluješ na NIXu s MPI? Mě to hlásí, že chybí <mpi.h>
19:40 mornfall nevim, nějak to funguje :) musíš nainstalovat openmpi
19:40 mornfall cmake vytáhne cesty z mpic++ či takého čehosi
19:43 xstill hmm asi smažu build adresář a zkusím to znova
19:45 xstill už funguje i MAP na NTree ;-)
19:45 xstill s MPI
19:46 xstill sakra zase jsem zabil gcc
19:48 xstill tenhle bug mám obvzlášť rád, protože clang si té chyby ani nevšimne
19:52 mornfall :D
19:52 mornfall capture v lambdě?
19:53 xstill this konkrétně
19:53 mornfall jo, no
19:53 xstill a pořát se mi někde nuluje node ve Vertexu
19:54 mornfall zajímavé
19:54 xstill ani ne, mám špatně operator=
19:55 mornfall :-) evergreen
19:55 xstill jo no
19:56 xstill ale samozřejmě to padá jen na owcty a ne jinde...
19:56 xstill ale už to asi bude
19:56 mornfall protože owcty je cool :-)
19:57 xstill takže zítra asi přejdu na ten benchmark tool
19:57 mornfall super
19:57 mornfall já dotáhnu ten ring
19:58 xstill jo já jen projedu testy a pokud projdou tak to tam máš
20:01 xstill jen teda není úplně hezké, že jsem do sequential přidal prázdnou metodu becomeMaster.
20:01 xstill ale zjednodušilo to inicializaci
20:06 xstill sakra kolikrát budu ještě do toho store amendovat this-> :-)
20:09 xstill sakra to owcty ještě jednou spadlo
20:14 xstill kde se tam ta 0 bere...
20:15 xstill ona je i v edge, to není přiřazením...
20:17 xstill to je záhada
20:40 xstill tak to dneska asi nebude, testy popadaly
20:41 mornfall smutné
20:42 mornfall ale zítra je taky den
20:42 mornfall slunko mi to dneska slí-bi-lo
20:45 xstill asi jsem přišl na to proč byla v tom OWCTY 0
20:46 xstill ale proč to sakra nefunguje někdy ani bez MPI to nevím
20:51 xstill hm, jde nějak v topu filtrovat podle názvu procesu?
20:51 mornfall nevím o tom
20:52 xstill nevadí, bude muset stačit ps
20:52 mornfall watch :-)
20:52 mornfall (watch "ps aux | grep divine" třeba)
20:53 xstill jojo
20:54 mornfall watch "ps aux | grep divine | sort -k3 -r -g" ;-)
20:54 xstill hmm :-)
20:55 mornfall (-k4 pro %MEM)
20:56 xstill lehlo mi to v Pool::valgindAllocated
20:58 mornfall Zajímavé.
20:58 mornfall valgrind? :)
21:00 xstill asi to nedal, zkusím to ještě jednou
21:00 xstill nepřežil to
21:01 xstill a nebo asi jo vlastně
21:01 xstill to jen hlásí, že spadnul ten divine uvnitř
21:01 xstill ale nedal nic užitečného
21:03 mornfall mpiexec ... valgrind divine
21:03 mornfall něco by říct měl ne?
21:03 xstill ono právě tohle ani není MPI, to je to divné
21:04 xstill a je to race, protože pro -w 1 to jede
21:04 mornfall hmm
21:04 mornfall a padá to aj na mainlinu?
21:04 mornfall asi ne co?
21:05 xstill ne
21:06 xstill je to navíc jen s NTree
21:09 xstill když ten assert vyhodnotím v gdb tak je true, ale v assert_fn je false
21:09 mornfall :-)
21:09 mornfall super ne?
21:10 xstill úžasný :-)
21:13 xstill on je Lake spočený pro vlákna?
21:14 mornfall spočený?
21:14 mornfall jo, společný
21:14 mornfall určitě
21:14 mornfall jestli máš víc než jednu instanci tak máš průšvih ;)
21:16 xstill ne to snad nemám, ale napadlo mě jestli tam nemůže být race mezi uvolněním paměti a uvolněním "valgrind indikátoru"
21:18 mornfall tak, teoreticky asi jo
21:18 mornfall houby
21:18 mornfall ani teoreticky :-)
21:18 mornfall na to aby se nějaká adresa dostala k jinýmu vlastníkovi se musí ty vlákna potkat na společným cas-u
21:19 mornfall jestli teda myslíš race typu release alloc alloc_valgrind release_valgrind
21:20 mornfall i když
21:20 mornfall hm
21:20 xstill release -> release_vg -> alloc  ale to je asi jedno
21:20 mornfall no, to je čistý
21:21 xstill hmm, NVALGRIND to prošlo...
21:21 mornfall a říkáš že to je race... hmm
21:22 xstill nejspíš
21:24 mornfall :D
21:24 mornfall už to aj vidim
21:25 mornfall nebo nevidim
21:26 mornfall a kterej assert? 119?
21:26 mornfall víš úplně stoprocentně jistě že tam fakt nemáš double free?
21:26 xstill 120
21:26 mornfall já na 120 nemam assert
21:26 mornfall VALGRIND_DISCARD tam je
21:27 xstill assert( !h[ p.offset ].allocated );
21:27 mornfall aha
21:27 xstill já to mám vlastně posunutý
21:27 mornfall jo jasně
21:27 mornfall ale to stejně nemůže být double free :-)
21:27 mornfall to by umřelo už dřív
21:27 xstill a jsem si dost jistý, že to není double free, není to v MPI
21:29 mornfall a valgrind neřekne ani ň a prostě zdechne jo?
21:29 xstill ne nezdechne, skončí korektně a oznámí, že divine zemřel, ale není tam ~Lake
21:29 xstill (což vlastně dává smysl)
21:32 mornfall no moc ne
21:32 mornfall jakto že se nezavolá ~Lake?
21:33 xstill jo, protože divine spadne
21:33 mornfall ah
21:33 mornfall hm :)
21:34 mornfall ale je to dost podezřelý
21:34 mornfall jenže kdyby se někde přepsal freelist tak si toho valgrind snad musí všimnout
21:35 mornfall gdb ti řekne jak vypadá ten zlej pointr ne?
21:37 xstill ten p je {tag = 0, block = 8, offset = 38}
21:37 mornfall to vypadá dost náhodně
21:37 mornfall :D
21:37 mornfall hej
21:37 xstill není pokaždý stejnej
21:38 mornfall zrušil jsi to raw v owcty?
21:38 xstill co? kde?
21:38 mornfall hm
21:38 xstill tam žádný raw nevidím
21:38 mornfall ale ty pointry se nikdy nedealokujo
21:39 mornfall hmm, to se mi asi zdálo... pf
21:40 mornfall a na tag přistupuješ přímo tím bitfieldem jo?
21:40 xstill jo
21:40 xstill ale ty testy padají i s NVALGRIND, takže je to asi rozbitý u mě
21:41 mornfall na takovýhle situace tam je ten pond, jen teď ho nejde moc rozjet protože tag... škoda :)
21:43 mornfall Ale možná to zarecorduj a pošli.
21:43 mornfall Já to nebudu pushovat, ale třeba si něčeho všimnu když to uvidím.
21:44 xstill no ono je to asi rozbitý ještě dost, protože mi někde nesedí worker.id() s owner v MPI
21:44 xstill ale jako zarekordovaný to mám takže send můžu udělat, jinak se na to podívám zítra
21:45 xstill dnes už se mi chce spát
21:46 mornfall ok
21:46 mornfall dneska už stejně moc času nezbývá
21:46 mornfall já bych taky mohl zarecordovat
21:46 mornfall i když to nefunguje :-P
21:48 xstill já to nebudu ani posílat, je to ještě moc rozbitý.
21:48 mornfall ok
21:50 xstill jdu spát.
21:50 mornfall dobrou noc
21:51 spito left #divine
21:51 mornfall ... :-)

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