Ako získať väčší výpočtový výkon CPU – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ako získať väčší výpočtový výkon CPU – C / C++ – Fórum – Programujte.comAko získať väčší výpočtový výkon CPU – C / C++ – Fórum – Programujte.com

 

iridium0
Newbie
13. 3. 2018   #1
-
0
-

Dobrý deň.

Spravil som vo WinApi program pre pomerne náročný výpočet spojený s hľadaním v databáze čísel (načítanej zo súboru do pamäti). V podstate sa jedná o niekoľko vnorených cyklov s príslušnými podmienkami, kde sa po skončení zapíšu výsledky do súboru. Celý proces trvá asi 7 sekúnd - avšak všimol som si, že CPU je počas tejto doby vyťažený ani nie na 20%. Dá sa nejako požiadať o pridelenie väčšieho výpočtového výkonu procesora?

Za odpovede vopred ďakujem.

Nahlásit jako SPAM
IP: 62.197.243.–
Radek Chalupa
~ Redaktor
+1
Super člen
13. 3. 2018   #2
-
0
-

#1 iridium
Předpokládám vícejádrový procesor, a pokud těch 20% je celkový výkon, tak to může být tím, že jedno vlákno (thread) běží pouze na jednom jádře, ostatní jádra nejsou nijka významě vytížená. Takže můžeš zkusit rozdělit práci na více vláken (CreateThread, _beginthreadex) nebo zkusit v c++ tzv. "pararell programing", viz např. zde https://msdn.microsoft.com/…h872235.aspx.

Další věc je, že pokud pracuješ s načítáním ze souborů, tak tím nejslabším resp. nejpomalejším článkem může být disk a procesor musí "čekat na data" a nemůže využít trvale max. výkon. Zkus se správcem úloh/sledování prostředků podívat na vytížení dísku za běhu toho výpočtu.

Radek Chalupa
- individuální konzultace, školení programování, (C/C++, C#, WinAPI, .NET, COM, ATL, MFC...)
- vývoj software na zakázku
http://www.radekchalupa.cz

Nahlásit jako SPAM
IP: 89.177.51.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2018   #3
-
0
-

Co ale Radek Chalupa nezminil:

Vetsinou je to zpusobene spatne zvolenym algoritmem, kontejnerem a tak. Rozdelit to do vlaken muze byt reseni, ale prvni bych to zmeril profilerem, a podle toho se pak zameril na optimalizace.

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
MilanL+1
Grafoman
14. 3. 2018   #4
-
0
-

jde o to jestli 7s trvá jen hledání, nebo celý program včetně načtení DB a uložení výsledků.

Dále bude docela dost záležet též na způsobu uložení dat, zda jde jen o pole čísel nebo o nějakou strukturu, a v neposlední řadě zda hledací kritérium je jednoduché nebo složené z více podmínek.

No a Threads Vlákna mohou pomoci za určitých podmínek.

Nahlásit jako SPAM
IP: 91.139.9.–
KIIV
~ Moderátor
+43
God of flame
14. 3. 2018   #5
-
0
-

#4 MilanL
od toho je profiler. Rekne ti presne, kde se travi kolik casu a pak se da optimalizovat. Zadne poradne detaily nedodal, takze tezko rici, jestli to ma jako mapu, serazeny spojovy seznam, nebo serazeny vector

Nahlásit jako SPAM
IP: 93.91.151.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kit+15
Guru
14. 3. 2018   #6
-
0
-

#1 iridium
Pokud tu "databázi čísel" prohledáváš sekvenčně, tak ta stávající rychlost je zřejmě odpovídající. Zkus vybrat vhodnější algoritmus.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 35 hostů

Podobná vlákna

Jaký máte výkon CPU? Otestujte...... — založil Stanislav Fajfr

Ako ziskat pristup k obrazkom — založil Eversmann

Ako ziskat udaje z API? — založil wrany

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý