[Pomysł] PerfectNumber@Home - szukanie liczb doskonałych [pomysł nr.2]

Zaczęty przez goofyx, 29 Październik 2010, 23:22

Tomasz R. Gwiazda

b0b3r: prace ida powoli ??
nie przesadzaj, jak dla mnie to rewelacyjnie szybko ida
:parrrty:

Oczywiscie do testow zamknietych jestem chetny :D Moze chociaz raz dostane invite code i bede mogl cos zrobic przed tymi ludzmi z Top10 ktorzy zawsze dostaja invity do projektow :P

michalc

Cześć,

ja też byłbym chętny do testowania. Sęk w tym że nie wiem czy odpowiada Tobie mój kalkulator czyli Intel CoreDuo T2300@1.66GHz, 3GB RAM, Wix XP SP3.

Wyrazy uznania za wykonaną do tej pory pracę.

No i dużo zdrowia  :D

Michał

Tomasz R. Gwiazda

kazda maszyna sie przyda a zroznicowanie sprzetowe jest bardzo porzadane

Troll81

moge udostepnić maszynkę z HaikuOS :D

goofyx

Cytat: b0b3r w 04 Listopad 2010, 16:23
Zasadniczo aplikacja którą zrobiłem jest w C i jest jak na razie przeznaczona pod system unixo-podobne (Linux, BSD, Solaris... choć na Solarisie jeszcze ma z nią probelm). Niestety z racji tego że pewne sprawy trochę inaczej wyglądają w tych systemach część kodu jest bardzo brzydka (ale jak na razie wygląda że działa) i będę musiał coś z tym zrobić. Dodatkowo z racji tego żeby było szybciej aplikacja korzysta z wrapper-a. To też pewnie będzie w przyszłości do zmiany ale ze względu na to że dokumentacja do boinc_api pozostawia wiele do życzenia (w zasadzie to praktycznie jej nie ma, i trzeba z plików przykładowych się domyślać co i jak) to pewnie zajmie to sporo czasu. Oczywiście aplikacja ma już sprawnie działające checkpointy i prawidłowy wskaźnik postępu i w trybie bez boinc-a działa świetnie. :)

Dodatkowo mam już w warunkach domowych postawiony testowy serwer boinc-a i coś tam działa (rozsyła odbiera itp.). Z takich cięższych rzeczy to jeszcze muszę zrobić tą bardziej "naukową" część czyli automatyczne generowanie zadań i obsługa tych już przeliczonych itp.  No i pozostaje sporo takich mniejszych, jak np. kalibracja wymaganej ilości obliczeń na jednostkę (co by się nie wyświetlało że pakiet się będzie liczył kilka lat). Związany z tym system punktacji. Tu mam trochę zgrzyt bo aplikacja działa na integer-ach i jest duża różnica między wydajnością systemów 64 bitowych i 32 bitowych a z wyników benchmarków to wcale nie wynika (więc się zastanawiam czy by nie dać stałych punktów za pakiet). Jest jeszcze kwestia jaki jest pożądany czas obliczań jednego pakietu? Obecnie to oscyluje w okolicy 4h na Core2Duo 2GHz w trybie 64bit (na procach Amd jest nawet szybsza).

Tak swoją drogą to w sumie projekt się będzie skupiał na szukaniu liczb pierwszych Mersenne-a to pomyślałem żeby go nazwać Mersenne@home (zarejestrowałem już nawet domenę mersenneathome.net).

P.S. Z racji tego że mam sporo zajęć a do tego jeszcze jestem teraz chory, prace idą powoli ale posuwają się na przód i myślę że jest szansa że do końca listopada projekt wystartuje. Pewnie w fazie publicznych testów ale to już zawsze coś. :)

Mam propozycje.
Załóżmy SVN dla projektu <- ty możesz prowadzić dla unikswo podobnych, ja dla windowsa ,- teoretycznie wersja 32 i 64 bity bo takie obsługuje visual studio 2010 :).
Serwer testowy może stać u mnie na Spider1 jako maszyna wirtualna <- on chodzi non-stop także nie ma problemu.

Teoretycznie 1-2 tygodnia i można by zamknięte testy uruchomić <- i rzeczywiście przed świętami uruchomić projekt na otwarte testy :)

Co ty na to?
Chyba, że masz inne plany.

ps.: w skrócie co oznacza że masz to zrobione na wraperze?

Karlik

Cytat: goofyx w 04 Listopad 2010, 19:03
ps.: w skrócie co oznacza że masz to zrobione na wraperze?
Zapewne to, że używa wrappera XP Innymi słowy: boinc uruchamia program, który uruchamia właściwy program. Generalnie do napisania macie integrację z boinc_api (czyli żeby boinc manager mógł bezpośrednio uruchamiać właściwy program). :P
@b0b3r: korzystasz z dużych liczb? Jeżeli tak to pisałeś sam czy jakieś biblioteczne?

Sebastian M. Bobrecki

@Karlik
Używam gmp ponieważ:
1). trzeba by wiele czasu żeby napisać coś takiego co by działało wydajnie, bezbłędnie i przenośnie.
2). w gmp jest mocno zoptymalizowany kod (sporo kodu w asemblerze)
3). gmp dostosowuje algorytmy do operandów (np. nie robi tak jak niektóre że od razu jadą z mnożeniem FFT jak argumenty są dosyć małe itp.)
4). gmp ma możliwość kompilacji w trybie "fat" (jedna biblioteka zawiera wiele wersji algorytmów zoptymalizowanych dla różnych architektur - to bardzo pożądana cecha dla boinc-a) :)

@goofyx
Co do serwera deweloperskiego to zobaczymy jak wyjdzie. Szczerze mówiąc jeszcze nad tym nie myślałem jakoś szczególnie, ale staram się robić tak żeby kodowania było jak najmniej. W myśl zasady przetestować i jak działa to nie ruszać żeby nie popsuć  ;)

Co do wrapper-a to jest tak jak Karlik napisał. Jest to taki program który z jednej strony implementuje funkcje boinc_api do komunikacji klientem boinc-a a z drugiej uruchamia zwykły "nieboincowy" program i tak jakby tłumaczy ich komunikację (wykonywanie checkpointów, indykator postępu,itp.). Z tego co pamiętam to Enigma też działa z wrapper-em i chyba niektóre aplikacje w Prime.
Kocham pracę, mogę na nią patrzeć godzinami.

sesef

Cytat: b0b3r w 04 Listopad 2010, 22:48
1). trzeba by wiele czasu żeby napisać coś takiego co by działało wydajnie, bezbłędnie i przenośnie.
2). w gmp jest mocno zoptymalizowany kod (sporo kodu w asemblerze)
3). gmp dostosowuje algorytmy do operandów (np. nie robi tak jak niektóre że od razu jadą z mnożeniem FFT jak argumenty są dosyć małe itp.)
4). gmp ma możliwość kompilacji w trybie "fat" (jedna biblioteka zawiera wiele wersji algorytmów zoptymalizowanych dla różnych architektur - to bardzo pożądana cecha dla boinc-a) :)

http://www.mpir.org/

Oparte na GMP potrafi być o kilka % szybsze od standardowego GMP.

Troll81

Byłby ktoś chętny i umiejętny sportować toto na HaikuOS??

Sebastian M. Bobrecki

@sesef
O, dzięki na pewno przetestuję. Chociaż cudów bym się nie spodziewała bo z tego co widzę to te funkcje z których ja skorzystałem są w zasadzie takie same (chodzi mi o źródła). Ale powiem więcej po testach.

@Troll81
Z tego co kojarzę to na Haiku są dosyć standardowe rozwiązania (libc, gcc,...), więc jest szansa że się da. Ale myślę żeby najpierw się zająć bardziej popularnymi platformami a dopiero potem że tak to ujmę niszowymi. A tak swoją drogą jesteś jakoś nieźle obeznany z tym systemem? Jak tam sprawy stoją? Ja drzewiej używałem BeOS-a jako podstawowy system na kompie do pracy i bardzo go sobie chwaliłem. Jestem ciekawy jak to z tym Haiku wygląda (na jakim on jest etapie) bo nigdy go sobie nie instalowałem? Ale to może w innym wątku.
Kocham pracę, mogę na nią patrzeć godzinami.

sesef

Cytat: b0b3r w 05 Listopad 2010, 10:30
@sesef
O, dzięki na pewno przetestuję. Chociaż cudów bym się nie spodziewała bo z tego co widzę to te funkcje z których ja skorzystałem są w zasadzie takie same (chodzi mi o źródła). Ale powiem więcej po testach.

To są zazwyczaj różnice do 5% i to tylko przy Intach. Podstawowym plusem MPIR jest oficjalne wsparcie dla windowsa (gotowe projekty pod VS).

goofyx

Cytat: sesef w 05 Listopad 2010, 13:09
Cytat: b0b3r w 05 Listopad 2010, 10:30
@sesef
O, dzięki na pewno przetestuję. Chociaż cudów bym się nie spodziewała bo z tego co widzę to te funkcje z których ja skorzystałem są w zasadzie takie same (chodzi mi o źródła). Ale powiem więcej po testach.

To są zazwyczaj różnice do 5% i to tylko przy Intach. Podstawowym plusem MPIR jest oficjalne wsparcie dla windowsa (gotowe projekty pod VS).
o wsparcie VS się przyda :)

Sebastian M. Bobrecki

@sesef
Przy tego typu matematyce działa się tylko na intach a każde 5% się przyda. :) Chociaż w gmp ostatnio się bardzo dużo poprawiło wersja 5 jest pond 40% szybsza od 4. Ale nie ma co dywagować trzeba sprawdzić i tyle. Może dziś wieczorem znajdę trochę czasu to to zrobię.

Kocham pracę, mogę na nią patrzeć godzinami.

sesef

Jak tam idzie chłopaki?

Radzę wszystko posprawdzać z 3x bo Anderson ostatnio ma manie dodawania 5120251153542432 rzeczy z których 3/4 nie działa, albo wręcz powoduje wysyp serwera.

goofyx

Cytat: sesef w 10 Listopad 2010, 18:41
Jak tam idzie chłopaki?

Radzę wszystko posprawdzać z 3x bo Anderson ostatnio ma manie dodawania 5120251153542432 rzeczy z których 3/4 nie działa, albo wręcz powoduje wysyp serwera.
Może i głupie pytanie, ale co to za koleś?

sesef

#55
Cytat: goofyx w 10 Listopad 2010, 20:58
Cytat: sesef w 10 Listopad 2010, 18:41
Jak tam idzie chłopaki?

Radzę wszystko posprawdzać z 3x bo Anderson ostatnio ma manie dodawania 5120251153542432 rzeczy z których 3/4 nie działa, albo wręcz powoduje wysyp serwera.
Może i głupie pytanie, ale co to za koleś?

David Anderson główny admin/twórca BOINC

Sebastian M. Bobrecki

Spoko będę to miał na uwadze. Tak naprawdę wystarczy popatrzeć jak boinc (strona serwerowa) jest napisany. Aż dziw bierze że to w ogóle działa.  ;)
Kocham pracę, mogę na nią patrzeć godzinami.

goofyx

Cytat: b0b3r w 05 Listopad 2010, 13:24
@sesef
Przy tego typu matematyce działa się tylko na intach a każde 5% się przyda. :) Chociaż w gmp ostatnio się bardzo dużo poprawiło wersja 5 jest pond 40% szybsza od 4. Ale nie ma co dywagować trzeba sprawdzić i tyle. Może dziś wieczorem znajdę trochę czasu to to zrobię.
Mógłbyś napisać w punktach jakie kroki podejmujesz w swojej aplikacji?
Nie wiem czy dobrze zrozumiałem teorie co do liczb doskonałych.
W skrócie to takie których suma dzielników równa się tej liczbie np.: 6 = 1 + 2 + 3
I później założenie jest takie, że: ( przykładowo dla n =2 )
1. Mersenne Prime to Mp = 2^p-1 np.: 2^2-1 = 4 - 1 = 3
2. Liczba doskonała to Pn = 2^(p-1) * Mp np.: 2^(2-1) * 3 = 2 * 3 = 6
3. p jest liczbą pierwszą

Czyli teoretyczne kroki to:
1. Sprawdzenie czy zadana liczba n jest liczbą pierwszą np.: Test Lucasa-Lehmera tak jak pisałeś <- jeśli n jest liczbą pierwszą
2. Obliczamy liczbę doskonałą : 2^(p-1) * (2^p-1)
3. Możemy dodatkowo znaleźć dzielniki wyliczonej liczby i sprawdzić czy ich suma się zgadza

Dobrze to rozumiem?

goofyx

#58
ps.:
A jeszcze sobie tak teraz myślałem <- też nie wiem czy dobrze.
Skoro wszystko opiera się na p, które jest liczbą pierwszą to czy nie można w jakiś sposób wykorzystać wyników np.: PrimeGrid <- oni szukają liczb pierwszych o ile się nie mylę.

A po za tym jaki jest problem w znalezieniu kolejnej liczby Mersennera i liczby doskonałej?
Skoro "wystarczy" liczba pierwsza <- przykładowo pobrana z PrimeGrid <- jaki sens ma szukanie/sprawdzanie czy liczba jest pierwsza skoro ktoś już o tym wie np.: PrimeGrid.

Dalszy ciąg rozważania <- może mylnego.
Mając np funkcję sprawdzającą czy dana liczba jest liczbą pierwszą:


function is_perfect(a:longint):boolean;
var
 i,s:longint;
begin
 s:=0;
 for i:=1 to a do
   if a mod i = 0 then
     s:=s+i;
 if s div 2 = a then
   is_perfect:=true
 else
   is_perfect:=false;
end;


To czy według Was coś takiego wystarczy dla duużych liczb mających np.: 20mln cyfr i więcej <- pomijam zasięg 32 bitów typów np.: pascalu/delphi.
Dzięki powyższej funkcji bez problemu znajduję 4 jak nie 5 liczb doskonałych <- na więcej nie pozwala zasięg zmiennych 32 bitowych przy testach.
Gdzie tu trudność przy szukaniu liczb doskonałych <- w szukaniu liczb pierwszych?
Skoro teoretycznie 99% sukcesu to znalezienie liczby pierwszej to teoretycznie taka aplikacja powielała by 99% tego co ma PrimeGrid.

Idąc tą drogą: co zawierała by WU? <- rzecz jasna nie mówię o pojedynczych sztukach liczb
1. Jakąś liczbę
2. Liczbę pierwszą

ad<-1
Klient sprawdza czy liczba jest pierwsza jeśli tak zwraca na serwer liczbę pierwszą

ad<-2
zwraca liczbę doskonałą na serwer



A teraz nie ktoś powie mi gdzie mam błąd w moim toku rozumowania <- bo pewnie jest taki.

apohawk

Jeśli liczby doskonałe zawsze można znaleźć przez te wzorki na liczbach mersena, to problem znalezienia kolejnej liczby doskonałej sprowadza się do znalezienia kolejnej liczby pierwszej, a to huhuhu nietrywialne ;)
No good deed goes unpunished.

goofyx

Cytat: apohawk w 15 Listopad 2010, 23:19
Jeśli liczby doskonałe zawsze można znaleźć przez te wzorki na liczbach mersena, to problem znalezienia kolejnej liczby doskonałej sprowadza się do znalezienia kolejnej liczby pierwszej, a to huhuhu nietrywialne ;)
Nie no ja nie przeczę że to proste.
Ale chodziło mi czy dobrze myślę, że mając kolejną liczbę pierwszą mamy kolejną liczbę doskonałą <- przy takim założeniu wyliczenie liczby doskonałej to "pikuś" bo 99,9% sukcesu to liczba pierwsza.

apohawk

Cytat: goofyx w 15 Listopad 2010, 23:02

function is_perfect(a:longint):boolean;
var
 i,s:longint;
begin
 s:=0;
 for i:=1 to a do
   if a mod i = 0 then
     s:=s+i;
 if s div 2 = a then
   is_perfect:=true
 else
   is_perfect:=false;
end;

Jakiś koszmarek wyszedł. Skróć pętlę o połowę, bo ten for chyba liczy się także dla i=a, a wtedy masz w sumie s=a+a dla liczby doskonałej, po to ten if z divem na końcu chyba jest.

half_a=a/2;
s=0;
for(i=1;i<=half_a;i++)
if(a%i==0) s=s+i
if(s==a) return true;
else return false;


Dalej można by tą pętlę skrócić do i<=sqrt(a)

sqrt_a=sqrt(a); //znajdź/napisz sobie jakieś sensowne rzutowanie na integera wzwyż
s=0;
for(i=1;i<=sqrt_a;i++)
if(a%i==0) s=s+i+a/i;
if(s==a) return true;
else return false;

Jakbym gdzieś napisał błąd w składni, to to jest pseudo-kod, a nie C ;)

Cytat
Nie no ja nie przeczę że to proste.
Ale chodziło mi czy dobrze myślę, że mając kolejną liczbę pierwszą mamy kolejną liczbę doskonałą <- przy takim założeniu wyliczenie liczby doskonałej to "pikuś" bo 99,9% sukcesu to liczba pierwsza.
Ale PG nie daje ci "kolejnych" liczb pierwszych, tylko jakieś tam liczby pierwsze. Możesz sobie znaleźć sitem erastotenesa (czy jak mu tam było) liczby pierwsze w zakresie [1;1000000] i mieć liczb doskonałych od zarąbania.
No good deed goes unpunished.

goofyx

Cytat: apohawk w 15 Listopad 2010, 23:36
Ale PG nie daje ci "kolejnych" liczb pierwszych, tylko jakieś tam liczby pierwsze. Możesz sobie znaleźć sitem erastotenesa (czy jak mu tam było) liczby pierwsze w zakresie [1;1000000] i mieć liczb doskonałych od zarąbania.
1. No tak niby nie kolejne <- a ciekawe dlaczego nie kolejne ;)
2. Od zarąbania? "Tylko" jakoś 664tyś z hakiem ;)

Sebastian M. Bobrecki

Małe wyjaśnienie kwestii matematycznych tak jak ja to widzę pod kontem projektu:
1). Liczba doskonałą parzystą ma postać ((2^p)-1)(2^(p-1)), przy czym (2^p)-1 musi być liczbą pierwszą. (2^p)-1 jest liczbą Mersenne-a, więc w zasadzie szukamy takich liczb.
2). Liczba Mersenne-a może być liczbą pierwszą tylko jeśli p jest liczbą pierwszą. Ale nie dla każdego p będącego liczbą pierwszą liczba Mersenne-a też będzie pierwsza (np. 11, 67, 257,...).
3). Trzeba podstawiać pod p kolejne (lub może jakoś lepiej wybrane; trzeba się douczyć) liczby pierwsze większe od 43112609 i sprawdzać czy dadzą w wyniku liczbę pierwszą Mersenne-a za pomocą testu Lucas-a - Lehmer-a.
4). Szukanie liczb pierwszych sitem Eratostenesa jest mało efektywne i już dla obecnie znanego największego p (43112609) dającego liczbę pierwszą Mersenne-a zajęło by jakieś kosmiczne lata.
5). Jako źródło liczb pierwszych dla p można użyć tabel obecnie znanych liczb pierwszych lub wybierać je metodą probabilistyczną np. testem Meiller-a - Rabin-a.

Kocham pracę, mogę na nią patrzeć godzinami.

goofyx

Cytat: b0b3r w 16 Listopad 2010, 12:06
Małe wyjaśnienie kwestii matematycznych tak jak ja to widzę pod kontem projektu:
1). Liczba doskonałą parzystą ma postać ((2^p)-1)(2^(p-1)), przy czym (2^p)-1 musi być liczbą pierwszą. (2^p)-1 jest liczbą Mersenne-a, więc w zasadzie szukamy takich liczb.
2). Liczba Mersenne-a może być liczbą pierwszą tylko jeśli p jest liczbą pierwszą. Ale nie dla każdego p będącego liczbą pierwszą liczba Mersenne-a też będzie pierwsza (np. 11, 67, 257,...).
3). Trzeba podstawiać pod p kolejne (lub może jakoś lepiej wybrane; trzeba się douczyć) liczby pierwsze większe od 43112609 i sprawdzać czy dadzą w wyniku liczbę pierwszą Mersenne-a za pomocą testu Lucas-a - Lehmer-a.
4). Szukanie liczb pierwszych sitem Eratostenesa jest mało efektywne i już dla obecnie znanego największego p (43112609) dającego liczbę pierwszą Mersenne-a zajęło by jakieś kosmiczne lata.
5). Jako źródło liczb pierwszych dla p można użyć tabel obecnie znanych liczb pierwszych lub wybierać je metodą probabilistyczną np. testem Meiller-a - Rabin-a.
1. Nie do końca się zgodzę, chyba że nie zrozumiałem twojej myśli. My nie szukamy liczby pierwszej Marsenna bo nie o to chodzi <- chodzi nam w ogóle o liczbę pierwszą p <- mając kolejną liczbę p mamy kolejną liczbę Marsenna, która też jest pierwszą, oraz mamy kolejną liczbę doskonałą. Podstawowy szkopuł to znaleźć kolejne liczby pierwsze przy założeniu p > 2.
2. Dokładnie. Dlatego mając kolejną liczbę p, należy sprawdzić czy  (2^p)-1 też jest liczbą pierwszą, jeśli tak to w sumie mamy kolejną liczbę doskonałą
3. Dlaczego akurat dla p > 43112609? <- projekt mógłby startować od pierwsze liczby pierwszej jaką znamy czyli p = 2. Będzie ciekawiej :)
4. To prawda sito jest mało efektywne, ale przede wszystkim jest prawdopodobieństwo, że pominie niektóre liczby nawet jeśli są pierwsze
5. Lub , tak jak pisałem jechać po kolei <- według mnie projekt zyskał by na atrakcyjności.


Sebastian M. Bobrecki

GIMPS jak by to ująć mało przyjazny dla użytkownika. U nich to wygląda tak że dostajesz liczbę i liczysz ją do końca co czasami trwa nawet miesiąc. Ja chcę żeby aplikacja liczyła np. kilka tysięcy iteracji i odsyłała wyniki cząstkowe. Potem z tych wyników będzie następny WU i znowu do policzenia. Ma to według mnie co najmniej dwie korzyści:
1). Pakiet liczy się krócej (kilka godz.) co jest milej widziane przez użytkowników.
2). Już po kilku tysiącach iteracji można porównać wyniki między różnymi komputerami i sprawdzić czy nie ma błędów. To by było marnowanie czasu jak ktoś by mielił np. 2 tygodnie albo więcej a potem by się okazało że jest błąd i wszystkie obliczenia idą do kosza. Tak to może ktoś po kilku błędnych próbkach się zreflektuje i np. zdejmie parę MHz z ekstremalnie podkręconego procka.
Kocham pracę, mogę na nią patrzeć godzinami.

Sebastian M. Bobrecki

Cytat: goofyx w 16 Listopad 2010, 13:28
...
1. Nie do końca się zgodzę, chyba że nie zrozumiałem twojej myśli. My nie szukamy liczby pierwszej Marsenna bo nie o to chodzi <- chodzi nam w ogóle o liczbę pierwszą p <- mając kolejną liczbę p mamy kolejną liczbę Marsenna, która też jest pierwszą, oraz mamy kolejną liczbę doskonałą. Podstawowy szkopuł to znaleźć kolejne liczby pierwsze przy założeniu p > 2.
2. Dokładnie. Dlatego mając kolejną liczbę p, należy sprawdzić czy  (2^p)-1 też jest liczbą pierwszą, jeśli tak to w sumie mamy kolejną liczbę doskonałą
3. Dlaczego akurat dla p > 43112609? <- projekt mógłby startować od pierwsze liczby pierwszej jaką znamy czyli p = 2. Będzie ciekawiej :)
4. To prawda sito jest mało efektywne, ale przede wszystkim jest prawdopodobieństwo, że pominie niektóre liczby nawet jeśli są pierwsze
5. Lub , tak jak pisałem jechać po kolei <- według mnie projekt zyskał by na atrakcyjności.

1. Tu nie masz się co nie zgadzać, to wynika z matematyki.
2. Dokładnie tak, to właśnie ma robić aplikacja projektu. Innymi słowy problemem nie jest wyszukiwanie liczb pierwszych na poziomie wartości liczby "p" bo to obecnie raptem trochę ponad 40 milionów a już dawno znamy dużo większe liczby pierwsze. Problemem obliczeniowym jest właśnie to żeby podstawić te znane liczby pierwsze pod p policzyć liczbę Mersenne-a i potem testem L-L sprawdzić czy będzie pierwsza.
3. To jest p dla największej obecnie znanej liczby Mersenne-a. Z tego co się orientuję mniejsze zostały już sprawdzone.
4. Sito jest tak mało efektywne że może Ci zabraknąć ramu/procesora/życia żeby to policzyć dla większych liczb.
5. No mi tam by bardziej zależało na tym żeby znaleźć jakieś nowe liczby bo to trochę szkoda czasu na liczenie tego co już jest sprawdzone. Choć z drugiej strony można by to potraktować jako procedurę testową.
Kocham pracę, mogę na nią patrzeć godzinami.

Troll81

moze w fazie alpha poluczyć te już sprawdzone i wyestymować sprawność algorytmu oraz zapotrzebowanie na sprzęt. A potem ruszyc z nowymi liczbami :D

goofyx

Cytat: b0b3r w 16 Listopad 2010, 14:04
Cytat: goofyx w 16 Listopad 2010, 13:28
...
1. Nie do końca się zgodzę, chyba że nie zrozumiałem twojej myśli. My nie szukamy liczby pierwszej Marsenna bo nie o to chodzi <- chodzi nam w ogóle o liczbę pierwszą p <- mając kolejną liczbę p mamy kolejną liczbę Marsenna, która też jest pierwszą, oraz mamy kolejną liczbę doskonałą. Podstawowy szkopuł to znaleźć kolejne liczby pierwsze przy założeniu p > 2.
2. Dokładnie. Dlatego mając kolejną liczbę p, należy sprawdzić czy  (2^p)-1 też jest liczbą pierwszą, jeśli tak to w sumie mamy kolejną liczbę doskonałą
3. Dlaczego akurat dla p > 43112609? <- projekt mógłby startować od pierwsze liczby pierwszej jaką znamy czyli p = 2. Będzie ciekawiej :)
4. To prawda sito jest mało efektywne, ale przede wszystkim jest prawdopodobieństwo, że pominie niektóre liczby nawet jeśli są pierwsze
5. Lub , tak jak pisałem jechać po kolei <- według mnie projekt zyskał by na atrakcyjności.

1. Tu nie masz się co nie zgadzać, to wynika z matematyki.
2. Dokładnie tak, to właśnie ma robić aplikacja projektu. Innymi słowy problemem nie jest wyszukiwanie liczb pierwszych na poziomie wartości liczby "p" bo to obecnie raptem trochę ponad 40 milionów a już dawno znamy dużo większe liczby pierwsze. Problemem obliczeniowym jest właśnie to żeby podstawić te znane liczby pierwsze pod p policzyć liczbę Mersenne-a i potem testem L-L sprawdzić czy będzie pierwsza.
3. To jest p dla największej obecnie znanej liczby Mersenne-a. Z tego co się orientuję mniejsze zostały już sprawdzone.
4. Sito jest tak mało efektywne że może Ci zabraknąć ramu/procesora/życia żeby to policzyć dla większych liczb.
5. No mi tam by bardziej zależało na tym żeby znaleźć jakieś nowe liczby bo to trochę szkoda czasu na liczenie tego co już jest sprawdzone. Choć z drugiej strony można by to potraktować jako procedurę testową.

Zgadzam się <- jako procedura testowa, sprawdzenie znanych będzie dobre.

Troll81

#69
Może dla tych co by chcieli projekt stawiać....

http://www.boincatpoland.org/images/3/3e/Zaproszenie.png

apohawk

No good deed goes unpunished.

Sebastian M. Bobrecki

No wreszcie znalazłem trochę czasu i udało mi się coś odpalić:

http://mersenneathome.net/   :)

Kocham pracę, mogę na nią patrzeć godzinami.

Troll81

 :respect: :respect: :respect:

a teraz poprosze o kod aktywacyjny :D

emik



Sebastian M. Bobrecki

Jest w planach taka aplikacja ale z racji że ja windows-ów nie używam to będzie ją musiał zrobić ktoś inny. Ja przesłałem moje wypociny na linux-a do goofyx-a i on pewnie coś z tego zrobi. Przy czym nie wiem ile to potrwa, ale ja jeszcze muszę dużo popracować nad generatorem zadań więc obecnie próbki będą się pojawiać bardzo sporadycznie jeśli w ogóle. Nie mniej jednak jeśli są posiadacze linux-ów (32 i 64 bit) chętni policzyć/pomóc poprawić pierwsze testowe pakiety to niech się zgłaszaj do mnie po kod aktywacyjny. Tylko nie wszyscy naraz żeby mi zostało trochę czasu na pracę nad generatorem  ;)
Kocham pracę, mogę na nią patrzeć godzinami.

sesef

Jakby co to ja mogę skompilować app pod win 32/64.

Sebastian M. Bobrecki

Cytat: sesef w 18 Grudzień 2010, 13:34
Jakby co to ja mogę skompilować app pod win 32/64.

Jakby co to odezwę się jak już się uporam z generatorem jednostek.
Kocham pracę, mogę na nią patrzeć godzinami.

krzyszp

Dodany do bazy, jutro powinien być w wynikach na naszym serwerze statystyk...

Fajne zegarki :)
Należę do drużyny BOINC@Poland
 Moja wizytówka

Sebastian M. Bobrecki

Cytat: krzyszp w 18 Grudzień 2010, 20:56
Dodany do bazy, jutro powinien być w wynikach na naszym serwerze statystyk...

Fajnie :)
Kocham pracę, mogę na nią patrzeć godzinami.

Sebastian M. Bobrecki

Hej kamraci pozakładajcie sobie profile bo mi serwer cały czas krzyczy że ma mało profili do losowania UoTD  :)
Dla przypomnienia: http://mersenneathome.net/
Kocham pracę, mogę na nią patrzeć godzinami.