Hirdetés

2024. április 24., szerda

Gyorskeresés

Hozzászólások

(#1) joysefke


joysefke
veterán
LOGOUT blog

Erre én is kíváncsi vagyok, most vettem egy Pi3 plusz-t :)

amit én laikusként problémának látok, hogy

1, csak egyetlen szálon futtatod a programot. Korrekt úgy lenne a dolog (az algoritmus primitívségét figyelmen kívül hagyva), hogy ha az elején lekérdeznéd mennyi logikai processzor (a Pi-ben ez 4db) van és annyi szálat indítanál, ahol mindegyik szál csupán a megfelelő modulójú számokra ellenőrizné a prímséget, a végén pedig összesítenéd a részeredményeket.

2, az egész program mindenestől belefér az egyetlen használt logikai processzor gyorsítótárába, ez nem feltétlenül életszerű...

3, Nyilván nem 20mp-t számít (lehet 20ms-t sem), de ha a konzolra írás idejét nem számoltad bele az Arduinos benchmarkban, akkor a Pi-vel se mérd bele a futási időbe:

Serial.println(millis() - start);
Serial.println(primes);

itt a millis()-start utasítás végrehajtásával már megvan a benchmark eredménye, amit a kettő darab konzolra írás már nem befolyásol. a Pi-s példában pedig előbb írsz a konzolra, majd visszatér a program és nyilván csupán ez után mérsz egy időt ami nem a nettó futási időd lesz, hanem (feltételezem) az az idő ami eltelik amennyi idő alatt az egész program visszaadja a vezérlést a linuxos parancsértelmezőnek.

szerk: igen olvastam a végét :)

[ Szerkesztve ]

(#2) weiss válasza joysefke (#1) üzenetére


weiss
addikt

1/ Ez akkor lenne érdekes, ha egy ideális prímkereső implementációt írnék. Most csak annyi volt a lényeg, hogy egy szálon mekkora a teljesítmény különbség.

2/ Valóban, de így pont a raspynak kellene sokkal gyorsabbnak lennie.

3/ Jogos :)

I did nothing, the pavement was his enemy!

Copyright © 2000-2024 PROHARDVER Informatikai Kft.