stopień wykorzystania mocy obliczeniowej przez poszczególne podprojekty

Zaczęty przez Ufol, 22 Marzec 2011, 22:40

Ufol

Często słyszy się o tym, że WCG słabo wykorzystuje moc obliczeniową procesora. Inni twierdzą, że pomiędzy podprojektami istnieją wyraźne różnice w tej sprawie. Założyłem ten wątek, ponieważ czas na rozwianie mitów i żetelną informację. Jak to przedstawia się w rzeczywistości? Czy to tylko pomówienia, czy naprawdę aplikacje są niedopracowane?
Podnoszę tą kwestię, gdyż nie mam profesjonalnej wiedzy informatycznej. Moje wiadomości ograniczają się jedynie do obserwacji komputera. Wiem, że projekty BOINC w różnym stopniu wykorzystują procesor. Jako rekordzistę wskazałbym Primegrid. Tam komputer wręcz trzeszczy i ma się wrażenie, że zaraz stanie w płomieniach. Co do innych projektów, podłączałem się do Dnetc@home Enigmy Poem@home Simapa i WCG, nie zauważam większych różnic w intensywności pracy procesora.
Wiem, że to prosta i mało wnosząca obserwacja, lecz jakoś dyskusję zacząć musiałem.
:)

Cyfron

czy ktoś się może w temacie wypowiedzieć?
Temat wydaje się wart pochylenia się nad nim...

Troll81

różne projekty wykorzystują różne zasoby procka. PG akurat bardzo intensywnie korzysta z cache procesora co wydatnie podnosi temperaturę. inne projekty po prostu maja większe potrzeby inie mieszczą się w cache stąd niższe temperatury. Do tego należy dodać że nie wszystkie proce wykorzystują wszystkie instrukcje proca (po prostu nie ma takiej możliwości) to też się przekłada na temperaturę. Oczywiście bywają też projekty źle zoptymalizowane ale to już pytanie do ich twórców. osobiście uważam że otwarcie kodu aplikacji wydatnie przyczynia się do optymalizowania kodu tejże :D

krzyszp

Troll  w zasadzie wyjaśnił wszystko, ale od siebie dodam dwie uwagi. Po pierwsze, czasami autorzy aplikacji nie są zawodowymi programistami, ale naukowcami i/lub pasjonatami i bardziej koncentrują się na poprawności wyników niż wydajności kodu... I druga sprawa - różne obliczenia w różnym stopniu angażuje procesory a i kompilatory mają swoje "narowy" (swego czasu głośno było o tym, że kompilator C od Intela mocno "faworyzował" procesory tejże firmy słabiej optymalizując programy dla AMD).


Należę do drużyny BOINC@Poland
Moja wizytówka

Ufol

Na zmieszczenie czego kolwiek z WCG w cache szans nie ma. To pamięciożerne bestie.
Czy istnieją jakieś optymalki dla tego projektu? Czy udostępnili kod?
Wiele pisze się o WCG jako o projekcie piknikowych liczydłowych. Takich co to o BOINC wiedzą tyle, że ich komputer szuka lekarstwa na raka a jak to się dzieje? Tego już oni nie wiedzą. Powszechnie uważa się, że za mało tu innowacji. Owa ociężałość ma się przejawiać także w działaniu aplikacji. W prywatnych rozmowach na ten temat, często słyszałem opinię typu:
" Jak by naprawdę o coś im chodziło, to oprogramowanie byłoby lepsze. Widać to jakiś przewał. Mielicie na pusto. "
Czy faktycznie możnaby przyspieszyć obliczenia? Czy ich charakter, konieczność dostosowania do działania na wielu procesorach, pamięciożerność, wykluczają możliwość ich zoptymalizowania?
Wiem, że mocno przynudzam, ale problem wydaje się być bardziej złożony. Ciekawy jest sam mechanizm obliczeń i to jak można je przyspieszać. Liczę WCG i w żadnym razie nie uważam tego projektu za marnowanie czasu czy wręcz przewał. Zastanawia mnie    tylko, dlaczego posiadając takie zaplecze naukowe i finansowe, tak mało się w nim zmienia.

Troll81

WCG nie ma otwartego kodu swoich aplikacji :(

czy mozna by przyspieszyć - nie wiadomo, myślę że jakby stanął do tego sztba programistów to by się dało :D

krzyszp

"Nie programów bezbłędnych - są tylko takie, w których błędów jeszcze nie odnaleziono" - ten cytat zdecydowanie oddaje istotę problemu w oprogramowaniu naukowym.
Zadania wykonywane w projektach WCG (a także w innych badaniach medycznych/biologicznych to zazwyczaj symulacje bardzo złożonych zjawisk, dlatego także algorytmy w nich stosowane są (jak się domyślam) bardzo złożone. W związku z tym, optymalizacja wykonywania takiego algorytmu jest również bardzo skomplikowana i jest raczej (IMHO) na drugim planie - ważniejsze jest poprawne, stabilne działanie programów i uzyskiwanie poprawnych wyników.

Troll napisał także, że różne rozkazy procesora w różnym stopniu go nagrzewają - to również jest prawda, a sama temperatura rdzenia nie jest dokładnym wyznacznikiem jego obciążenia.

Trochę motam, ale nie przeglądałem kodu projektów (pewnie i tak bym go nie zrozumiał nie mając przygotowania naukowego), jednak w tej sprawie wierzę, że programiści WCG doskonale wiedzą, co robią. Fakt, że ich aplikacje nie często się zmieniają, ale to raczej zaleta - świadczy o dokładnym przetestowaniu kodu i braku konieczności implementowania poprawek...


Należę do drużyny BOINC@Poland
Moja wizytówka

Arthusp

Swego czasu spotkałem się z dwiema zasadami optymalizacji kodu, który działa poprawnie:
1. nie rób tego,
2. jeszcze tego nie rób!

krzyszp

Cytat: Arthusp w 24 Marzec 2011, 10:18
1. nie rób tego,
2. jeszcze tego nie rób!
Pierwsza zasada administratora:
Jeśli działa - nie ruszaj!  :whip:



Należę do drużyny BOINC@Poland
Moja wizytówka