Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - registrovany_ava

Stran: 1 2 [3] 4 5
31
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 15:52:34 »
Pekna metafora. Ale narazim kdyz pak na javu pouzivam ideu, na python pycharm, na c# ...., na maily ....., na web ...., na ukoly ...., na chat ...., na 3d modeling ..... , .....

Neni lepsi kdyz na to vsechno muzu pouzivat jeden nastroj ktery mam v muscle memory?
Jasně, taky na všechno výše uvedené používám univerzální nástroj. Nazývám ho "počítač" :-)

32
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 14:56:26 »
Ja osobne zkousel pouzivat spoustu ruznych ide, pocinaje Wing Python IDE, ktere jsem si kdysi koupil, pres Eclipse, pyCharm az po Visual Studio Code a vzdycky jsem se pokorne vratil k Vimu. Ten editor je navykovy a jeho moznosti u me prekonavaji jakekoliv vyhody, ktere poskytuje ide. Takze imho je to dost individualni, v cem programovat.

Taky jsem dlouho trpěl touhle rozpolceností, až jsem to vyřešil pluginem IdeaVim do Intellij. Mám to nejlepší z obou světů.

33
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 21. 02. 2020, 14:55:06 »
A hlavne HNED ZACIT POUZIVAT TEZKOTONAZNI IDE, primo na miru jazyka a dat aspon odpoledne tomu se to IDE radne naucit.

Gratuluji k popsání nejhoršího postupu pro začátečníka.  :)

To už dlouho není pravda. Dneska vás IDE prakticky vede za ruku. Velkou výhodu při učení dávají tyhle věci:

To je ale otazka, jestli je to dobre. Neni pomoc jako pomoc. Jedna pomoc vas nauci chytat ryby a druha vam ty ryby dava a ucini vas na te pomoci zavisle.

V téhle metafoře bych přirovnal dobré IDE ke kvalitnímu prutu, háčku, splávku, pohodlné židličce, předpovídačce počasí, online encyklopedii ryb a autu co tě rychle převáží z jednoho místa řeky k jinému. Jasně, můžeš lovit i na klacek, kost a ponožku, taky něco chytíš, taky se leccos naučíš, ale s lepšími nástroji máš prostě víc možností, statisticky toho chytíš víc, a nakonec se toho i o samotném rybaření můžeš naučit víc, protože míň času trávíš činnostma co se samotným rybařením nesouvisí. Ta získaná závislost na IDE spíš říká něco o tom, že člověk prostě nechce pracovat s podřadnými nástroji když vyzkoušel lepší.

34
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 19. 01. 2020, 06:22:58 »
Čistě ze zvědavosti, jaké oblasti se vlastně celý ten projekt týká? Jestli je to tajné, tak to pochopím..

35
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 19. 01. 2020, 06:14:31 »
Padly tu dobré rady. Vyzkoušel jsi ten Cuckoo filter? Zatím jsi neodpověděl, odkud bereš data. Jak řešíš sdílení té hashtabulky mezi procesy?
Mrkni do předchozích příspěvků. Cuckoo jsem zkoušel já. Problém řešený v tomto vlákně už je v podstatě vyřešený, bottleneck je nyní jinde a je to zřejmě úplně jiná pohádka.

36
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 18. 01. 2020, 18:07:23 »
asi je ti jasný

To ano, ale zrychlení o 100% znamená úsporu strojů.
možná se na ten mejdan s Carmackem a Bernsteinem budeš muset přidat
Vařím dobrý kafe, to ano, kafe bych jim vařit mohl, ale tím to končí.

Každopádně všem díky, znovu se v tom pohrabu a zkusím část těch nápadů tady ve vláknu.
Děkuju :-)

(V následujícím textu vycházím z tohoto obrázku, z toho nahoře:)
\
https://imgur.com/iP27yPa

100% (zrychlení 2x) by bylo hezký, ale

Teoretické maximální zrychlení při absolutní optimalizaci (čas 0s) všech kroků kromě naplnění je jen 1.74x, jak jsem psal výše.

Teoretické max. zrychlení při absolutní optimalizaci pouze kroku Prověření (nad kterým jsme tu trávili tolik času) je  (4.8 + 0.06 ) / (4.8 ) = 1.0125x, teď už asi vůbec nestojí za to nad tím přemýšlet.

Naopak teor. max. zrychlení při optimalizaci Naplnění je 2.36x, to už vypadá jako hotspot, nad kterým stojí za to přemýšlet, i když se do toho člověku tolik nechce, je to bohužel na místě kde to může být užitečné.

Napsat jednotkové testy a property testy na ověření, že původní implementace a nová implementace dělají pořád to samé, benchmarkovat, pustit na to třeba CallGrind a KCacheGrind, třeba se něco povede..

Samozřejmě neznám skutečnou situaci, třeba je to opravdu rada mimo... Ale ty meze zrychlení jsou neúprosné.

37
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 18. 01. 2020, 07:17:27 »


..

Každopádně mám zase nad čím přemýšlet, testy 1 a 2 dokážu přesunout na grafickou kartu, nebo je upravit a použít AVX.

Naplnění zprávy přepsat nezvládnu, ta knihovna není moje, jako by jí psal o divokém mejdanu Carmack s Bernstainem...

No, asi je ti jasný, že i kdyby se ti podařilo zrychlit kroky "Serializace, Test1, Test2, Prověření," které teď na prvním obrázku trvají 2.07 vteřin, 1000000x, výsledek bude kvůli "Naplnění" stejně rychlejší jen (2.07 + 2.8 ) / (0.00000207 + 2.8 ) = 1.74x. Amdahlův zákon (taky bych chtěl aby podle mě někdo pojmenoval trojčlenku) je neúprosný, možná se na ten mejdan s Carmackem a Bernsteinem budeš muset přidat..

38
Hardware / Re:Monitor setup
« kdy: 16. 01. 2020, 13:14:36 »
Ve finále jsem to prodal a skončil s jedním 5k, virtuální plochy, ... Raději zkus, ať na tom „nevyděláš“ jako já :)

Přesně, jeden monitor (na výšku, ale to není podstatné), a klávesové zkratky na přepínání virtuálních ploch tak rychlé, že otočit hlavou by trvalo déle (např. moje oblíbená je Win-Tab, přepíná mezi posledníma dvěma plochama)

39
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 22:47:17 »
registrovany_ava:
a i tak je to rychlejší, než Ty filtry, co by se do L2 vejít měly?

Jo, je, taky mě to překvapilo. Možná jsou bídně implementovaný, ale nechtělo se mi zkoušet další implementace  a víc se v tom vrtat, už takhle mi stojí práce..

Tak mám 80 000 000 testů/s, stále bez použití probabilistických filtrů :-)

40
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 22:28:56 »
golang, naplneni mapy 40 miliony uint64 a pak 600 milionu prohledavani v mape, cisla jdou za sebou.
jedno vlakno na i9-8950hk, cas procesu 42 sekund.

my ale netestujeme 64bitová ale 64BAJTOVÁ čísla. A i kdyby to byla 64bajtová čísla tak výsledek nic moc, 14 000 000 testů za vteřinu, to to mám skoro třikrát rychlejší,

41
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 22:25:00 »
registrovany_ava:
a i tak je to rychlejší, než Ty filtry, co by se do L2 vejít měly?

Jo, je, taky mě to překvapilo. Možná jsou bídně implementovaný, ale nechtělo se mi zkoušet další implementace  a víc se v tom vrtat, už takhle mi stojí práce..

42
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 22:10:57 »

Viz:
data se stejně ukládají do pole rychlostí asi 2 GB/s a za hodinu se nezaplní víc než několik 5-7 TB prostoru

To jsou běžné hodnoty na kontroléru (na vstupu), tedy "běžný vstup" je řekněme miliony čísel na vteřinu.
Špičky jsou jinde, navíc je to celé rozložené mezi víc strojů a ověření je jen jednou z úloh zpracování.
Zajímavá by byla možnost i opakování dávek z předchozích dnů. Nicméně, pokud zlepším propustnost celého systému, mohu žádat o víc dat = dostanu víc peněz. A popravdě o to tu jde v první řadě, trochu to zefektivnit nebo se na to podívat říct "líp už to nejde", pak vím, že to musím hnát počtem strojů, které se musí nejen napájet, ale i chladit...

OK, zkusím si tedy vydedukovat, jak rychle to tedy opravdu zpracováváš, tím, že budu ignorovat tvůj první příspěvek o dvou miliardách porovnání za vteřinu, a spočtu si to z těch 2GB/s.

2GB/s ~= 30 000 000 testovaných 64bajtových čísel za vteřinu.

Zkusil jsem si to bez větších chytristik naprogramovat v Rustu.

Slovník 10 000 000 čísel (tím o něco překračuji těch 400MB slovníku, co jsi někde zmiňoval), test kdy je jeden hit na 9999 misses.

Stroj: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz, čtyřjádro, tedy dneska skoro kancelářská plečka

Program běží ve čtyřech vláknech.

V opravdu jednoduchoučké verzi dosahuji cca 37 000 000 testů/s

S menší chytristikou se dostanu na 55 000 000 testů/s

Víc jsem nezkoušel, už takhle jsem tím dneska promarnil skoro čtyři hodiny (to se mi nemělo stát, že se objevil takovýhle zajímavý problém)

Jsou to zajímavá čísla, nebo ne? Kolik to teda dělá tobě?


psalo se tu o ruznych algoritmech, co's pouzil ty?
slovnik je v RAM?

HashSet :-) Zkoušel jsem i dvě implementace Cuckoo filteru, co tu zmiňoval Linuxák, ale vycházelo to pomaleji, ta Rustovská HashSet je asi dost optimalizovaná. Slovník je samozřejmě v RAM, ale jen jednou, nikoliv pro každý proces extra jak to má OP, je to vícevláknová aplikace.

Drobnou chytristiku si zatím nechám pro sebe, ale je to vcelku banalita a stejně to výkon nezvyšuje nějak kulervoucím způsobem (asi o 30%).

Ještě omluva. Ve skutečnosti je lepší verze jen asi 38 000 000 testů/s, nikoliv 55 000 000 testů/s. Měl jsem příliš malou testovací sadu (10 000 čísel, pro každé vlákno samozřejmě jiná), kterou jsem recykloval dokola, a nějaký čas se šetřil tím, že byla celá v nějaké L? cache, což samozřejmě v reálu nebude. Zvýšil jsem testovací sadu na 1 000 000 čísel, a výkon spadl na čísla uvedená výše.

43
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 21:47:05 »

Viz:
data se stejně ukládají do pole rychlostí asi 2 GB/s a za hodinu se nezaplní víc než několik 5-7 TB prostoru

To jsou běžné hodnoty na kontroléru (na vstupu), tedy "běžný vstup" je řekněme miliony čísel na vteřinu.
Špičky jsou jinde, navíc je to celé rozložené mezi víc strojů a ověření je jen jednou z úloh zpracování.
Zajímavá by byla možnost i opakování dávek z předchozích dnů. Nicméně, pokud zlepším propustnost celého systému, mohu žádat o víc dat = dostanu víc peněz. A popravdě o to tu jde v první řadě, trochu to zefektivnit nebo se na to podívat říct "líp už to nejde", pak vím, že to musím hnát počtem strojů, které se musí nejen napájet, ale i chladit...

OK, zkusím si tedy vydedukovat, jak rychle to tedy opravdu zpracováváš, tím, že budu ignorovat tvůj první příspěvek o dvou miliardách porovnání za vteřinu, a spočtu si to z těch 2GB/s.

2GB/s ~= 30 000 000 testovaných 64bajtových čísel za vteřinu.

Zkusil jsem si to bez větších chytristik naprogramovat v Rustu.

Slovník 10 000 000 čísel (tím o něco překračuji těch 400MB slovníku, co jsi někde zmiňoval), test kdy je jeden hit na 9999 misses.

Stroj: Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz, čtyřjádro, tedy dneska skoro kancelářská plečka

Program běží ve čtyřech vláknech.

V opravdu jednoduchoučké verzi dosahuji cca 37 000 000 testů/s

S menší chytristikou se dostanu na 55 000 000 testů/s

Víc jsem nezkoušel, už takhle jsem tím dneska promarnil skoro čtyři hodiny (to se mi nemělo stát, že se objevil takovýhle zajímavý problém)

Jsou to zajímavá čísla, nebo ne? Kolik to teda dělá tobě?

44
Vývoj / Re:C, zápis do pole čísel a zápis mimo cache L1/L2
« kdy: 14. 01. 2020, 10:34:47 »
řeším takový zapeklitý problém, potřebuji extrémně rychle kontrolovat, jestli určité číslo (64 bajtů) není ve slovníku.
Aktuálně stíhám asi dvě miliardy porovnání za vteřinu, ale potřebuji víc, ideálně 10x víc...

Nějak mi neštymujou čísla, ale možná mi něco nedochází:
Chápu správně, že "porovnáním" nazýváš test, zda číslo je nebo není ve slovníku? Tedy aktuálně zpracováváš 2 mld čísel za vteřinu?
Tedy taháš 2 gigaporovnání za vteřinu * 64 bajtů = 128 GB dat za vteřinu.

Jak to dokážeš protáhnout RAMkou? A už vůbec nerozumím, jak to ukládáš na disk?

45
Může být pokus o snížení google rankingu té původní stránky. Když vytvoříte duplikát, který google oindexuje dřív než tu původní stránku, sníží se její ranking.

Hmm, zajímavé, to jsem nevěděl. Ale nezdá se mi, že by to byl případ konkrétně těchto stránek - nevypadají, že by duplikovaly nějakou konkrétní původní stránku. Weby "Komínová klapka elektrická"? "Kempingový vozík skládací"? To se mi nezdá.

Stran: 1 2 [3] 4 5