AMD CPU pro Javu

Re:AMD CPU pro Javu
« Odpověď #30 kdy: 02. 09. 2018, 16:40:16 »
Právě každý build je dost jiný a i ten Spring je blbý v tom, že moc vláken nepoužije. Ale pořád lepší než Handbrake.

Upravuješ větší projekt a pokud třeba neděláš kompletní refactoring, tak si něco přejmenuješ a pak se díváš, co se rozbilo. To je v každém IDE docela rychlé. Pak build závislosti přepočítání je vždy dost náročné a pokud toho dáváš víc a trochu si s tím hraješ, tak je to dost opruz. Integrační testy by mohly být rychlejší, takže celý build a jejich spuštění. Tam jde o kompilaci, postavení něčeho spustitelného, spuštění, spuštění testů, provoz serverů a to je asi vše. To nemusí být časté, ale čím rychlejší to je, tím lépe. Normální unit testy co nejrychlejší také. Debug puštění je vždy pomalé, tak také asi co nejlepší CPU? Prostě normální vývoj, ale v Javě vše trvá a IDE tomu moc nepomáhá, protože asi samo žere docela dost prostředků.

A mám problém s tím, jestli je lepší Intel, který v náročných aplikacích jako hry ukazuje, že i 8700K se 6 jádry si dá s přehledem 8jádrový Ryzen. Ale třeba u Javy by to bylo jiné.

Pokud chceš CPU na hry, ber Core.
Pokud chceš CPU na práci, nevybírej podle her.


užnestudent

Re:AMD CPU pro Javu
« Odpověď #31 kdy: 02. 09. 2018, 16:52:15 »
Hry jsou poměrně zajímavý benchmark a konzole mají 8jádra od AMD, takže všechny hry jsou na to připravené. Problém je s tím, že evidentně to nějak AMD procesory moc nedávají. Je otázkou, co jim vlastně jde lépe. Potřebuju CPU s co nejvyšším výkonem na jádro, což má Intel a co nejlepším výkonem ve více vláknech, což má asi Intel také. Jen ten Cinebench a Handbrake a další podobná "nereálná" zatížení dobře sedí AMD. Ale co když Docker a Java jde AMD docela dobře?

Re:AMD CPU pro Javu
« Odpověď #32 kdy: 02. 09. 2018, 17:00:48 »
Hry jsou poměrně zajímavý benchmark a konzole mají 8jádra od AMD, takže všechny hry jsou na to připravené. Problém je s tím, že evidentně to nějak AMD procesory moc nedávají. Je otázkou, co jim vlastně jde lépe. Potřebuju CPU s co nejvyšším výkonem na jádro, což má Intel a co nejlepším výkonem ve více vláknech, což má asi Intel také. Jen ten Cinebench a Handbrake a další podobná "nereálná" zatížení dobře sedí AMD. Ale co když Docker a Java jde AMD docela dobře?

Ta osmijádra jsou z rodiny malých koček...

zdenek henek nereg.

Re:AMD CPU pro Javu
« Odpověď #33 kdy: 02. 09. 2018, 17:25:50 »
Právě každý build je dost jiný a i ten Spring je blbý v tom, že moc vláken nepoužije. Ale pořád lepší než Handbrake.


Tak proc to chces pouzit jako test pro procesor, ktery je schopny pouzit 8 jader s HT, takze 16 vlaken?

Jses si jisty, ze je to tak malo? Pouzil jsi --parallel prepinac u gradle?

btw, pokud ti preklad java projektu trva dlouho, tak by mozna stalo za to prejit na gradle,pokud uz gradle pouzivate tak zapremyslet jak se daji detekovat zmeny vstupu tasku aby se task provedl, pouze pokud se zmeni vstupy, nebo chybi vystupy.
Bezne takto dosahujeme "zrychleni" buildu java projektu Vetsinou v kombinaci s --parallel pak build (incrementalni) trva 10% casu jako build, ktery nema nic predkompilovano.

ad SSD, to co pises je pravda jen v pripade, ze mas dostatek ram a muzes vyuzivat FS cache, jinak je to vyrazne pomalejsi.

Testum nezavislych testeru bych veril, zalezi pak jak vyuzivas IO, pokud by tvuj use case saturoval IO mezi ram a procesorem, tak zapremyslej nad AMD Threadripper, ktery ma 4kanalovy pametovy radic, ale pokud jen resis preklad java kodu, tak vetsinou optimalizace buildu jak jsem popsal + co nejvyssi paralelizace srazi cas buildu (testovano na linuxu s ssd Samsung 850 pro a 32gb ram, cpu mobile quad core Ivy Bridge) na minimum, pokud tam nemas tasky, ktere neumi rozeznat, ze nemusi bezet. Vice najdes treba na https://guides.gradle.org/performance/

U nas je nejvetsi brzdou buildu tasky gruntu, ktere delaji transpilaci javascriptu atd., ktery neni schopny rozeznat jestli se zmenil nejaky js soubor a pro jistotu se buildi pokazde.

zaver neni nutne mit nejrychlesji CPU, ale premyslet pri navrhu buildovaciho procesu :)

zdenek henek nereg.

Re:AMD CPU pro Javu
« Odpověď #34 kdy: 02. 09. 2018, 17:41:44 »
Hry jsou poměrně zajímavý benchmark a konzole mají 8jádra od AMD, takže všechny hry jsou na to připravené. Problém je s tím, že evidentně to nějak AMD procesory moc nedávají. Je otázkou, co jim vlastně jde lépe. Potřebuju CPU s co nejvyšším výkonem na jádro, což má Intel a co nejlepším výkonem ve více vláknech, což má asi Intel také. Jen ten Cinebench a Handbrake a další podobná "nereálná" zatížení dobře sedí AMD. Ale co když Docker a Java jde AMD docela dobře?

Full build java projektu je taky vec, kterou budes delat po checkoutu nove branche, jinak ne, takze jak dlouho trva full build az tak dulezite neni :)


Pavel_Kysilka

Re:AMD CPU pro Javu
« Odpověď #35 kdy: 02. 09. 2018, 17:41:58 »
zdravim,

za posledni roky jsem vyzkousel par procesoru od AMD co se tyce Javy a vyvoje na Springu.
Budu mluvit o desktopu.

Co se tyce velkych buildu na Maven, tak Ryzen 1800x trhne dopre taktovane 6 jadro od Intelu - core I7, core i9. Tady je to hlavne o frekvenci jednoho jadra a paraelizace tak slavna neni. To same je i boot Spring aplikaci.
Pri spusteni vidite, ze to obcas zabere na veskera jadra. Ale jinak vytizeni na jedno vlakno je slabota.
Ohledne buildu je load tak okolo 8 pokud se bavime o korporatnich aplikacich.

Jinak Spring a paraelni boot, tak to je kapitola sama pro sebe. Staci si projit nektere ticket-y(bugzilla) na Springu.
Vyvojari maji jine priority.

Notebooky nebo miniITX pocitace, tak to je pomale a hlavne to hrozne funi = vetraky.

Tam kde trhnete Intel:

 jsou unit testy. Idealne psane pomoci mock-u nebo nejake vypocty. Pokud se jede single thread do relacni databaze vsechny testy (nepocitam H2 a in memory databaze), tak tam vede Intel.

Tak to proste je.

Samozrejme, ze se pocita, ze mate NVMe disky a alespon 32GB RAM. Idealne 64GB s virtualizaci.



Proc teda kupovat neco jineho a vicejadroveho ?
----

Pokud mate dobre napsane testy, tak to se pocita.

Na 16 jadru nepoznate, ze delate build ci poustite unit testy na 32 vlaken a muzete delat dalsi veci. Je to plynule.

Virtualizace jsou jasna volba.

Pokud si jeste provozujete databazi a par webserveru(JBOSS,....), tak to je taky jasna volba. Je to pak hodne svizne.

Pokud delate s velkymi daty.

Nektere aplikace podstatne startuji rychleji. Ve vterinach. IDEA, Eclipse, SQLDeveloper.

Je pro Vas dulezite vykryt dobre nejake spicky - narazove vyuziti HW.

Pokud se denne prepnete denne do 10-12 GIT ruzne starych vetvi, delate buildy a delate merge + chcete si ozkouset unit-testy, nez to poslete na code-review ci rovnou git push, zda to chodi.

Me osobne vadi zasekavani masiny a trhani aplikaci pri myslenkovych pochodech pri praci. Hure se pak soustredim.

Muzete se dostat k hodne zajimavym uloham a zkusenostem, co ostatni delat nemohou. Nektere veci se na core i5, 8GB RAM a HDD delat v rozumnem case nedaji.

Performance testy. Zde to je jasna volba.

Lepsi vicejadro se taky hodi, pokud si zapnete Sonar pri vyvoji.

Nejake dlouhodobe zkusenosti za posledni asi 3 roky:

AMD Vishera 8300 8c - pomale v porovnani s dalsimi CPU v seznamu. Nic moc slavneho.

AMD Ryzen 1800x 8c/16t - slusne. Hodne zajimavy CPU.

AMD ThreadRipper 1950x 16c/32t - naprosta plynulost.

AMD ThreadRipper 2990WX 32c/64t - budu vedet za mesic/dva.

--------------------------

Pokud chcete setrit, tak 4 jadro core i7. Vice se, pokud nemate nejake paraelizace a paraelizovatelne ulohy, nevyplati.
Pokud chcete vyssi efektivitu za vynalozene penize tak 6 jadro od Intel. Pokud chcete nejaky lepsi vykon za nizsi penize tak Ryzen 2700x - 8 jader.

Pokud chce nekdo usetrit, tak staci zacit pouzivat misto Eclipse IDE InteliJ IDEA. Uplne jinak toto IDE pracuje s HW prostredky (RAM, CPU).


  Pavel Kysilka

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:AMD CPU pro Javu
« Odpověď #36 kdy: 02. 09. 2018, 17:46:34 »
Tak příkaz pro ten Spring bude lepší jen test, protože build mi nedobíhá. Pak můžeme poladit i přesné verze, ať jsme na stejných, ale zatím se stejně moc lidí nezapojilo ;D
Kód: [Vybrat]
./gradlew --no-build-cache clean test

To je zajímavý test, kdy se mi procesor kus času fláká buď v jednovlákně nebo s vytížením okolo 3-8%... Hm

zdenek henek nereg.

Re:AMD CPU pro Javu
« Odpověď #37 kdy: 02. 09. 2018, 17:53:24 »


Na 16 jadru nepoznate, ze delate build ci poustite unit testy na 32 vlaken a muzete delat dalsi veci. Je to plynule.

  Pavel Kysilka

Pri kolika testech se Vam vyplati spoustet paralne jednotlive testy, aby to bylo rychlejsi, nez kdyz se spousti testy paralelne jen na urovni jednotlivych projektu? Me vychazelo, ze v projektu musi byt cca 800 testu, aby se to vyplatilo - rezie forkovani atd. ale testoval jsem na mobilnim cpu a pouze quad core. Je to s 8c/16th nebo 16c/32th lepsi a vyplati se to uz pri nizsim poctu testu?

Diky.

užnestudent

Re:AMD CPU pro Javu
« Odpověď #38 kdy: 02. 09. 2018, 17:55:12 »
Na ostatní zareaguju také, ale je toho moc.

zdravim,

za posledni roky jsem vyzkousel par procesoru od AMD co se tyce Javy a vyvoje na Springu.
Budu mluvit o desktopu.

...

  Pavel Kysilka

Tohle je přesně to, co jsem hledal. Díky. I to využití toho Gitu, to je přesné. Prostě měním projekty, běhám po různých věcech a nechci být obtěžovaný tím, že se mi něco zasekne, protože mi mezitím jede třeba build k projektu, který budu dělat za 15 minut.

užnestudent

Re:AMD CPU pro Javu
« Odpověď #39 kdy: 02. 09. 2018, 18:26:52 »
Hry jsou poměrně zajímavý benchmark a konzole mají 8jádra od AMD, takže všechny hry jsou na to připravené. Problém je s tím, že evidentně to nějak AMD procesory moc nedávají. Je otázkou, co jim vlastně jde lépe. Potřebuju CPU s co nejvyšším výkonem na jádro, což má Intel a co nejlepším výkonem ve více vláknech, což má asi Intel také. Jen ten Cinebench a Handbrake a další podobná "nereálná" zatížení dobře sedí AMD. Ale co když Docker a Java jde AMD docela dobře?

Ta osmijádra jsou z rodiny malých koček...

A jak to souvisí? Prostě hry jsou dělané pro hodně jader a Intel má lepší výkon.

Právě každý build je dost jiný a i ten Spring je blbý v tom, že moc vláken nepoužije. Ale pořád lepší než Handbrake.


Tak proc to chces pouzit jako test pro procesor, ktery je schopny pouzit 8 jader s HT, takze 16 vlaken?

Jses si jisty, ze je to tak malo? Pouzil jsi --parallel prepinac u gradle?

btw, pokud ti preklad java projektu trva dlouho, tak by mozna stalo za to prejit na gradle,pokud uz gradle pouzivate tak zapremyslet jak se daji detekovat zmeny vstupu tasku aby se task provedl, pouze pokud se zmeni vstupy, nebo chybi vystupy.
Bezne takto dosahujeme "zrychleni" buildu java projektu Vetsinou v kombinaci s --parallel pak build (incrementalni) trva 10% casu jako build, ktery nema nic predkompilovano.

ad SSD, to co pises je pravda jen v pripade, ze mas dostatek ram a muzes vyuzivat FS cache, jinak je to vyrazne pomalejsi.

Testum nezavislych testeru bych veril, zalezi pak jak vyuzivas IO, pokud by tvuj use case saturoval IO mezi ram a procesorem, tak zapremyslej nad AMD Threadripper, ktery ma 4kanalovy pametovy radic, ale pokud jen resis preklad java kodu, tak vetsinou optimalizace buildu jak jsem popsal + co nejvyssi paralelizace srazi cas buildu (testovano na linuxu s ssd Samsung 850 pro a 32gb ram, cpu mobile quad core Ivy Bridge) na minimum, pokud tam nemas tasky, ktere neumi rozeznat, ze nemusi bezet. Vice najdes treba na https://guides.gradle.org/performance/

U nas je nejvetsi brzdou buildu tasky gruntu, ktere delaji transpilaci javascriptu atd., ktery neni schopny rozeznat jestli se zmenil nejaky js soubor a pro jistotu se buildi pokazde.

zaver neni nutne mit nejrychlesji CPU, ale premyslet pri navrhu buildovaciho procesu :)

Tak příkaz pro ten Spring bude lepší jen test, protože build mi nedobíhá. Pak můžeme poladit i přesné verze, ať jsme na stejných, ale zatím se stejně moc lidí nezapojilo ;D
Kód: [Vybrat]
./gradlew --no-build-cache clean test

To je zajímavý test, kdy se mi procesor kus času fláká buď v jednovlákně nebo s vytížením okolo 3-8%... Hm

Já vím, tak co jiného znáte z Java světa? Mě nic nenapadá, protože běžně pracuju neOSS projekty.

Build mě zajímá jako takový příklad trochu zajímavějšího vytížení. Gradle má svou cache, takže skoro vše za chvíli hotové. Ale právě ten Docker, sem tam kompilace, sem tam build a dohromady to udělá hromadu času za ten den. A já si říkám, jestli je lepší vzít méně jader, i když asi lepších a nebo věřit AMD a zkusit více jader. Dnes je to 8700K vs 2700X. AMD se mi zdá OK, ale jak se dívám na různé testy, tak fakt to vypadá, že prostě AMD je pomalejší.

ByCzech

  • *****
  • 1 848
    • Zobrazit profil
    • E-mail
Re:AMD CPU pro Javu
« Odpověď #40 kdy: 02. 09. 2018, 18:32:33 »
Já vím, tak co jiného znáte z Java světa? Mě nic nenapadá, protože běžně pracuju neOSS projekty.

Build mě zajímá jako takový příklad trochu zajímavějšího vytížení. Gradle má svou cache, takže skoro vše za chvíli hotové. Ale právě ten Docker, sem tam kompilace, sem tam build a dohromady to udělá hromadu času za ten den. A já si říkám, jestli je lepší vzít méně jader, i když asi lepších a nebo věřit AMD a zkusit více jader. Dnes je to 8700K vs 2700X. AMD se mi zdá OK, ale jak se dívám na různé testy, tak fakt to vypadá, že prostě AMD je pomalejší.

No tak aspoň přidat switch --parallel, pak je to jiné kafe. CPU s mnoha core/threads z toho vytěží víc.

zdenek henek nereg.

Re:AMD CPU pro Javu
« Odpověď #41 kdy: 02. 09. 2018, 18:44:26 »
Já vím, tak co jiného znáte z Java světa? Mě nic nenapadá, protože běžně pracuju neOSS projekty.

Build mě zajímá jako takový příklad trochu zajímavějšího vytížení. Gradle má svou cache, takže skoro vše za chvíli hotové. Ale právě ten Docker, sem tam kompilace, sem tam build a dohromady to udělá hromadu času za ten den. A já si říkám, jestli je lepší vzít méně jader, i když asi lepších a nebo věřit AMD a zkusit více jader. Dnes je to 8700K vs 2700X. AMD se mi zdá OK, ale jak se dívám na různé testy, tak fakt to vypadá, že prostě AMD je pomalejší.

Muj postup je nasledujici. V soucasne dobe jsou ceny GPU, RAM a SSD velmi vysoko. GPU uz pomalu jdou dolu, ram je bude brzo nasledovat a ssd taky. AMD behem pristiho rokud vyda nove Ryzeny, ktere budou mit 12 a mozna i 16 jader, sice asi porad dvoukanalovy radic pameti, ale myslim, ze pokud budu nekdy potrebovat neco lepsiho, tak to vyresim AWS virtualem.

Proc ne Intel. Mozna bude celkove o fous lepsi na jedno vlakno, mozna taky ne. Vadi mi jakym zpusobem se stavi k security problemum ktere maji. Jak se snazili dokonce zakazat testovani vykonu, kdyz delaji svoje testy, tak tam nejsou aktivni vsechny zaplaty. Spotrebu procesoru uvadi na minimalnich taktech a ne realnou. To jakym zpusobem pouzili Minix je taky minimalne neslusne ...

užnestudent

Re:AMD CPU pro Javu
« Odpověď #42 kdy: 02. 09. 2018, 18:52:01 »
Já vím, tak co jiného znáte z Java světa? Mě nic nenapadá, protože běžně pracuju neOSS projekty.

Build mě zajímá jako takový příklad trochu zajímavějšího vytížení. Gradle má svou cache, takže skoro vše za chvíli hotové. Ale právě ten Docker, sem tam kompilace, sem tam build a dohromady to udělá hromadu času za ten den. A já si říkám, jestli je lepší vzít méně jader, i když asi lepších a nebo věřit AMD a zkusit více jader. Dnes je to 8700K vs 2700X. AMD se mi zdá OK, ale jak se dívám na různé testy, tak fakt to vypadá, že prostě AMD je pomalejší.

No tak aspoň přidat switch --parallel, pak je to jiné kafe. CPU s mnoha core/threads z toho vytěží víc.

Máš pravdu. Jste mě úplně zmátli. Jsem si to asi spletl s workers, které se nastavují automaticky, ale tohle bylo vypnuté.

užnestudent

Re:AMD CPU pro Javu
« Odpověď #43 kdy: 02. 09. 2018, 18:56:23 »
Já vím, tak co jiného znáte z Java světa? Mě nic nenapadá, protože běžně pracuju neOSS projekty.

Build mě zajímá jako takový příklad trochu zajímavějšího vytížení. Gradle má svou cache, takže skoro vše za chvíli hotové. Ale právě ten Docker, sem tam kompilace, sem tam build a dohromady to udělá hromadu času za ten den. A já si říkám, jestli je lepší vzít méně jader, i když asi lepších a nebo věřit AMD a zkusit více jader. Dnes je to 8700K vs 2700X. AMD se mi zdá OK, ale jak se dívám na různé testy, tak fakt to vypadá, že prostě AMD je pomalejší.

Muj postup je nasledujici. V soucasne dobe jsou ceny GPU, RAM a SSD velmi vysoko. GPU uz pomalu jdou dolu, ram je bude brzo nasledovat a ssd taky. AMD behem pristiho rokud vyda nove Ryzeny, ktere budou mit 12 a mozna i 16 jader, sice asi porad dvoukanalovy radic pameti, ale myslim, ze pokud budu nekdy potrebovat neco lepsiho, tak to vyresim AWS virtualem.

Proc ne Intel. Mozna bude celkove o fous lepsi na jedno vlakno, mozna taky ne. Vadi mi jakym zpusobem se stavi k security problemum ktere maji. Jak se snazili dokonce zakazat testovani vykonu, kdyz delaji svoje testy, tak tam nejsou aktivni vsechny zaplaty. Spotrebu procesoru uvadi na minimalnich taktech a ne realnou. To jakym zpusobem pouzili Minix je taky minimalne neslusne ...

Počítač potřebuji co nejdříve, nejlépe dnes ;D

Určitě, security je fakt divné a vůbec to neřeší. Prostě kupujte zmetky a my to možná opravíme, ale jen pokud bude čas. Dyť co byste za ty prachy chtěli :D Problém je s tím výkonem. Nové 9900K bude mít takt až 5 GHz a Ryzen končí někde u 4,3. IPC je možná pro vývoj o kousek lepší, takže celkově Intel se jeví jako lepší volba z hlediska výkonu, ale jinak nic moc. Jen mi dost vadí ta integrovaná grafika. Vždy mi na vše stačila, ale Ryzen ji nemá :( To už by pak možná byl lepší Threadripper, ale zase se bojím, že tolik jader se běžně nevyužije.

kkt1

  • *****
  • 796
    • Zobrazit profil
Re:AMD CPU pro Javu
« Odpověď #44 kdy: 02. 09. 2018, 19:09:19 »
Vice vlaken vyuzijes vzdy. Pokud nepouzivas nejaky debilni jednovlaknovy OS, tak i samotny OS vyuzije to co mu cpu nabidne. FF nebo chrome od nejake verze spousteji pro kazdou domenu samostatny proces, komprese treba 7zip umi vyuzit vicero cores,... takze tech moznosti vyuzit vice core cpu je podle mne vzdy dost.