Ja swoje algorytmy rozwiązujące różne zagadnienia matematyczne tworzę w pewnym sensie w izolacji, tzn. trudno mi znaleźć kogoś, kto byłby skłonny ze mną w tej materii współpracować. OK, nic na to nie poradzę, pogodziłem się, że jestem tu skazany sam na siebie.
Jeśli chodzi o uruchamianie programów, to jest lepiej, ale niewiele. W ostatnim czasie współpracę zaoferował mi Raanan Chermoni oraz PrimeGrid. Poza tym jestem skazany na samotną zabawę komputerami dostępnymi w pracowniach studenckich, na których programy uruchamiam dość prymitywnie, tzn. za pomocą skryptów odpalanych ręcznie.
Czuję pewien niedosyt, że nie udało mi się wciągnąć do współpracy więcej osób, zwłaszcza z Polski.
Nie wiem na ile jest to sensowne, ale chodzi mi po głowie następujący pomysł. Na stronie
http://hjem.get2net.dk/jka/math/aprecords.htm
odnotowującej rekordy związane z postępami arytmetycznymi liczb pierwszych, jest jeszcze parę rekordów, których pobicie nie powinno być zbyt trudne. Myślę, że byłbym w stanie wyprodukować program, który dawałby spore szanse na wpisanie się na listę rekordzistów, np. Smallest AP-k with minimal start k=19,20,21,22. Gdyby było takie zainteresowanie, chętnie przekazałbym w użytkowanie taki program BOINC@Poland. Ja umiem zrobić tylko procedurę liczącą, ale nawet przy braku systemu podziału zadań można ją odpalać ręcznie umawiając się kto bierze jaki przedział parametrów. Proszę spojrzeć na
http://hjem.get2net.dk/jka/math/simultprime.htm
gdzie część wyników została uzyskana przez zorganizowane projekty. W tabeli rekordów wymieniane są: nazwisko odkrywcy (czyli właściciela komputera), nazwa projektu oraz nazwa użytego programu.
Z takich poszukiwań pewnie nie byłoby punktów w różnych klasyfikacjach, ale byłaby spora szansa na wpis do tabeli rekordów. Może w ten sposób dałoby się przyciągnąć do projektu nowych użytkowników i spopularyzować ideę tego typu poszukiwań.
Jeśli ten pomysł wydaje się sensowny, jestem gotów rozpocząć przygotowania odpowiedniego programu.
Czy dobrze rozumiem że byłby to program do odpalenia na pojedynczym kompie ? Czy może chciałby pan zaadoptować algorytm do BOINC ?
Raczej pan Jarek by dostarczyl tylko procedure, ktora bedzie obliczac a 'ktos' by musial przygotowac reszte, czyli oprogramowanie projektu, podzial zadan itp.
Ja się nie znam na BOINC. Mogę dostarczyć procedurę wykonującą obliczenia. Można ją łatwo odpalać na pojedynczym kompie albo podzielić pracę na wiele maszynek.
Z całą pewnością można to zaadaptować do BOINC (w końcu PrimeGrid to zrobił z podobnym programem), ale ja tego nie umiem i nie zrobię. Żeby nie było wątpliwości, program dzieli się w łatwy sposób na niezależne segmenty, więc nie ma problemu z rozdzieleniem pracy na wiele komputerów, które nie muszą się ze sobą komunikować. Wystarczy rozdzielić pracę i zebrać wyniki.
Wyobraźmy sobie, że ma być wykonana Procedura(n) dla n=1,2,3,...,1000000.
Można na jednym kompie odpalić
for(n=1;n<=1000000;n++)Procedura(n);
albo na milionie kompów na raz odpowiednio
Procedura(1);
Procedura(2);
Procedura(3);
...
Procedura(1000000);
Napisanie Procedury to mój problem. Do Was należałoby rozdzielenie pracy i zebranie wyników.
Cytat: jurdziol w 03 Styczeń 2009, 12:37
Raczej pan Jarek by dostarczyl tylko procedure, ktora bedzie obliczac a 'ktos' by musial przygotowac reszte, czyli oprogramowanie projektu, podzial zadan itp.
Tak właśnie. Przy czym w wersji próbnej do pomyślenia jest także ręczne rozdzielanie zadań, np. widziałem, że PrimeGrid ręcznie rozdziela przedziały sita, po prostu użytkownicy na forum zgłaszają, który przedział biorą. No ale docelowo wygodniejszy pewnie byłby jakiś system - to oczywiście zależy od możliwości technicznych.
******
Po zastanowieniu: wydaje mi się wręcz, że pierwszy tego typu program powinien być rozdzielany
ręcznie przez umawianie się co do przedziałów obliczeń np. na forum w stosunkowo wąskim gronie testerów. Dopiero potem można ewentualnie myśleć o czymś poważniejszym. Pytanie podstawowe: czy jesteście zainteresowani taką zabawą?
Ja jestem zainteresowany. Myślę że po weekendzie odzew może być większy.
ja również wspomogę moim komputerkiem
Może w dłuższej perspektywie wykluje się z tego jakiś projekt BOINC. Taka moja nadzieja, marzenie...
hem - to i ja zapuszczę to cuś na swoim quadzie - jeśli w ten sposób nazwisko polskiego naukowca zostanie rozreklamowane to ja jestem za! ;)
może TJM by się tym pobawił i zrobił z tego projekt BOINCowy - można by wtedy zamiast na skb@p pozbierać na serwer i do boju (może nawet Artur się wtedy dorzuci :D)
Pierwsze zadanko znajduje się w katalogu
http://www.math.uni.wroc.pl/~jwr/BaP/
plik AP19.ZIP
ok - no to przeczytałem opis kilkanaście razy - i dalej nic nie wiem :) jak z tego zrobić program? w którym pliku ustawić przedział? (mam vistę 64bity więc rozumiem, że nie muszę podmieniać PrimeQ64.h (co i tak by mi się nie udało bo nie wiem jak:) ) ja chętnie to zapuszczę na swoim kompie, ale musisz mi powiedzieć jak to skompilować/uruchomić (jak najprostszym językiem, bo na tym się w ogóle nie znam). ewentualnie poczekam jak ktoś to rozgryzie :)
kompilujesz poleceniem: gcc -O3 -lm -lgmp -o ap19 AP19-64.c
uruchamiasz: ./ap19 <start> <stop> gdzie jako start i stop wpisujesz zakres
ja na początek biorę zakres od 1 do 100000
Jak program będzie skompilowany, z ustawieniem przedziału nie powinno być problemu. Ja tego pod Windowsem kompilować nie umiem, trzeba mieć gmp. Jak ktoś umie, niech podpowie, bo ten problem będzie przy każdym programie. Ponadto trzeba chyba wywalić z AP19-64.c linuxowe czasomierze, czyli całą definicję microtime() i wszystkie linijki zawierające "time", to może zależeć od kompilatora.
Z kompilacją musicie sobie zrobić jakąś wzajemną samopomoc, bo ja umiem kompilować tylko u siebie na kompilatorze, który w systemie linuxowym jest utrzymywany przez administratorów sieci.
W teorii przedział [x,y] ustawiamy uruchamiając program z linii poleceń
ap19.exe x y
jeśli będzie skompilowany do ap19.exe albo wpisując do pliku AP19-ini.txt linijkę postaci
x y
i uruchamiając program w tym samym katalogu, co ten plik.
Np. na pierwszy test czy chodzi można dać
1 1000
i wtedy w SOL-AP15.TXT powinno się znaleźć
15 65 598396207
15 140 229480759
w zakresie 1 1000 wyniki zgadzają się więc wszystko ok
oto wyniki z zakresy 1 do 100.000:
15 65 598396207
15 140 229480759
15 65 598396207
15 140 229480759
15 1156 337523821
17 6682 110101249
16 10579 1121933177
15 40013 1218234179
15 88889 87380341
Sugerowalbym, zeby ktos pokompilowal i udostepnil gotowe EXEki dla 32 i 64bit.
Umowimy sie co do przeliczanych przedzialow, ustalimy w jaki sposob liczymy, tzn ile prob dla jednego z przedzialow aby wynik byl wiarygodny, kazdy chetny zasugeruje co liczy i rozpoczniemy zabawe ;)
zgadzam się z przedmówcą - jak ktoś skompiluje to pod windowsa to niech się pochwali :)
myślę, że zakresy milionowe będą w sam raz - starczy na nockę
MOże faktycznie zaopiekowałby się tym TJM :) a my dozbieralibyśmy na serwerek :D projekt prime@poland ?? :D
@Jarek Wroblewski (badz osoba ktora juz sie tym zajmuje - np. emik):
1. Uprzejmie prosze o podanie przykladowego zakresu obliczen, mozliwego do wykonania dla `przykladowego` komputera w okreslonym czasie. W pelni satysfakcjonowalaby mnie odpowiedz w stylu: Q6600 2.40 z Ubuntu AMD64 w ciagu 24h przerobi zakres 1-10mln.
2. Czy mam racje uwazajac ze ten `skrypt` bylby dostepny na wszystkie platformy?
3. Nie znalazlem informacji (moze gdzies pominalem) jaki zakres mamy przeszukac (nieograniczony?).
4. Czy skrypt jest pisany natywnie pod kilka rdzeni (przetwarzanie rownolegle etc.), ew. jesli nie to, czy na procku 4-jajecznym nalezaloby odpalic cztery skrypty?
5. Czy w przypadku tego skryptu przewaga systemu 64-bit jest rowniez ogromna, czy to juz `inna bajka`?
ad1.
T5500@1660 aplikacja 64bity zakres 1-10000 - 91sekund
T5500@1660 aplikacja 32bity zakres 1-10000 - 90sekund
ad3. zakres od 1 do 2^31-1
ad4. musisz odpalić cztery aplikacje
czasy zbliżone ale był mały zakres danych, więc trzeba by powtórzyć na większym obszarze
Wolałbym żebyście sami sobie rozdzielali przedziały. Na początek chyba wystarczą posty w stylu: Biorę xM-yM. Myślę, że nie ma sensu przeszukiwania tego samego przedziału przez więcej niż 1 osobę.
@AiDec
1. Na Athlonie 64 3000 1K szło mi w 8-9 sekund. Najlepiej zapuścić sobie testowo jakiś krótki przedział i zmierzyć prędkość. Przy dalszych zakresach może trochę spowalniać, ale chyba nie za bardzo - to wszystko jest do przetestowania. Przy tej prędkości 10mln=24h, ale inny procesor może łatwo wyrabiać ze 2 razy więcej na każdy rdzeń. Trzeba sobie samemu zmierzyć prędkość i oszacować.
2. Ja się na tym nie znam, sądzę, że polecenia, których używam, powinny się z grubsza przenosić. Pod Windowsem może być problem z drukowaniem liczb większych niż 2^32, ale ten konkretny program tego nie robi. Zawsze najlepiej zapuścić testowy przedział i zobaczyć jak działa.
3. Teoretycznie nie dalej niż do 2^31-1, można dalej, ale trzeba byłoby zmienić typ liczb w programie. W zasadzie to się decyduje w trakcie poszukiwań. Jak się znajdzie rozwiązanie, to można iść dalej, licząc na lepsze, albo sobie odpuścić.
4. Pod 1 rdzeń. Na 4 rdzeniach odpalamy 4 skrypty w różnych katalogach roboczych.
5. Nie testowałem, ale wydaje mi się, że też. W zasadzie program jest tego samego typu, więc i ten aspekt powinien wyglądać podobnie.
Dobra zadanie na dzisiejszą noc, skompilować to pod windows.
Na razie walczę z portem GMP na windowsy, a raczej z Visual Studio które nie lubi libów kompilowanych starszymi wersjami VS.
na razie dla testów próbuje skompilować appa ma x86 jak się uda to z przejściem na x64 nie powinno być już problemów (mam nadzieję)
Któryś z Linuxowców albo Pan Jarek mógłby mnie oświecić i powiedzieć jakie przedziały liczbowe dostarcza biblioteka GMP, może zamiast męczyć się z portem znalazła by się jakaś biblioteka co oferuje takie przedziały pod windows.
Cytat: sesef w 03 Styczeń 2009, 17:13
Któryś z Linuxowców albo Pan Jarek mógłby mnie oświecić i powiedzieć jakie przedziały liczbowe dostarcza biblioteka GMP, może zamiast męczyć się z portem znalazła by się jakaś biblioteka co oferuje takie przedziały pod windows.
gmp jest potrzebne do zdefiniowania procedury
int PrimeQ(long long value)
która testuje, czy liczba 64-bitowa jest pierwsza (wartość procedury różna od 0) czy złożona (procedura ma dawać 0). Procedura ta jest zdefiniowana w PrimeQ32.h i PrimeQ64.h. Poza tym gmp nie jest używane.
Można się obejść bez gmp, ale trzeba mieć własną procedurę testująca pierwszość liczb 64-bitowych i wstawić ją do PrimeQ. Nie wiem, czy to łatwiejsze.
Wygrzebałem ze starego pliku następujące paskudztwo:
*************
typedef unsigned int __attribute__ ((mode(TI))) uint128;
long long PowerMod(long long r, long long e, long long p)
{
uint128 a;
if(e==1) {return r;}
else
if(e==0) {return 1;}
else
if(e%2==0)
{a=PowerMod(r,e/2,p); return (a*a)%p;}
else
a=PowerMod(r,e/2,p);
a=(a*a)%p;
return (r*a)%p;
};
int PrimeQ(long long p)
{
return (2==PowerMod(2,p,p))?1:0;
};
**************
Pierwsza linijka w jakiś tajemniczy sposób pod 64-bitowym linuxem definiuje liczby 128-bitowe (kolega mi to pokazał, często działa, a często wysypuje kompilator gcc4 i trzeba używać gcc3). Nieważne. W każdym razie, jeśli mamy liczby 128-bitowe, to reszta nadaje się do testowania pierwszości - teoretycznie może to uznać liczbę złożoną za pierwszą, ale zdarza się to na tyle rzadko, że nie zakłóca programu. Dobrego rozwiązania nie pominie, a jak przepuści jakąś lipę, to się ją odsieje przy ręcznej weryfikacji.
W każdym razie jak nie mamy gmp, a mamy liczby 128-bitowe, to jest OK.
Pierwszy etap zakończony
Aplikacja na 32 bity pod windowsa http://www.speedyshare.com/212443438.html
Teraz jeszcze spróbuje skompilować na x64.
Co do x86 kompilowane na standardowym GMP bez optymalizacji pod jakikolwiek procesor oraz z wyłączonymi optymalizacjami kompilatora gdyż nie ma to sensu skoro 32 bitowe systemy się nie nadają do obliczeń.
Jakby ktoś chciał się pobawić z kompilacja tutaj wszystko ładnie opisane jak skompilować GMP pod VS 2008 http://fp.gladman.plus.com/computing/gmp4win.htm jeszcze więcej informacji w readme.txt w ściągniętym zipie.
Coś się nie chce kompilować GMP na x64 z 32 bitowego systemu :/ Zainstaluje XP x64 i zobaczymy może wtedy ruszy
Cytat: emik w 03 Styczeń 2009, 16:49
T5500@1660 aplikacja 64bity zakres 1-10000 - 91sekund
T5500@1660 aplikacja 32bity zakres 1-10000 - 90sekund
czasy zbliżone ale był mały zakres danych, więc trzeba by powtórzyć na większym obszarze
To w zupełności wystarczy, żeby stwierdzić, że na 32 i 64 bitach działa tak samo szybko. W zasadzie test kilkusekundowy już by wystarczył. Jak się zastanowiłem, to chyba wiem dlaczego tak może być. Otóż w tym programie zamiast dzielenia liczb 64-bitowych jest dzielenie 32-bitowe, a to chyba najbardziej żarłoczna operacja z tego programu.
To jednak sytuacja wyjątkowa, w większości tego typu programów nie da się uniknąć dzielenia 64-bitowego.
Inna sprawa, że T5500 jest procesorem nowszej generacji niż stare 32-bitówki i wcale nie jest powiedziane, że na nich też tak fajnie to pójdzie. Ale dramatycznej różnicy być nie powinno.
******
Po prostu tu nie ma mądrych na przewidywanie prędkości działania. Dopiero testy konkretnego programu pokazują jak jest naprawdę.
Jak będą execki dla Win XP x64 to się przyłączam :P.
Po dokładnym przejrzeniu kodu stwierdzam, że w obecnej wersji powinien działać poprawnie tylko do 1757658938, czyli troszkę mniej niż 2^31, ale poza tym, że nie należy przekraczać tej granicy, to nie ma istotnego znaczenia.
Myślę, że po ewentualnym znalezieniu rozwiązania AP19, należy kontynuować do powyższej wartości licząc na lepsze AP19 lub na AP20.
Co do APP-a x64 walczyłem kilka godzin przy okazji sypnąłem sobie 2 systemy (ale to już inna bajka + własna głupota) jak dotąd nie udało mi się skompilować GMP na x64 przez co nie mogę skompilować samego programu. Jak komuś się chce i potrafi może podłubać z Dev C++/Code Blocks obydwa środowiska używają GCC pod tym powinno w miarę ruszyć. Ja do tego środowiska nie mam zdrowia.
Myślałem również nad własna implementacja testu pierwszości, z tego co się doczytałem GMP korzysta z testu Millera-Rabina jadnak taka aplikacja będzie pewnie wolniejsza niż kompilowane z GMP.
Cytat: sesef w 04 Styczeń 2009, 04:59
Myślałem również nad własna implementacja testu pierwszości, z tego co się doczytałem GMP korzysta z testu Millera-Rabina jadnak taka aplikacja będzie pewnie wolniejsza niż kompilowane z GMP.
Podejrzewam, że w tym konkretnym programie testowanie pierwszości jest wykonywane na tyle rzadko, że jego wydajność nie jest zbyt istotna. Myślę jednak, że nie ma sensu tracić energii na prowizoryczne rozwiązania, które w przyszłości nie wystarczą. Myślę, że na dłuższą metę bez GMP się nie obejdzie. W wielu programach, jakie mam w planie na przyszłość, trzeba operować na liczbach 128-bitowych i testować pierwszość liczb 128-bitowych. Trudno też każdy program pisać w 2 wersjach: z GMP i bez GMP.
Tak więc z punktu widzenia inwestycji w przyszłość dobrze byłoby, żeby ktoś kto ma nerwy do wepchnięcia GMP w Windowsowy kompilator, utorował drogę kolejnym programom.
Kolejne dwa zadanka w katalogu
http://www.math.uni.wroc.pl/~jwr/BaP/
pliki Ap20.zip oraz Ap21.zip
Na razie starczy, zobaczymy, co jesteście w stanie z tego wydusić.
Programy niewiele różnią się od pierwszego, więc powinny sie podobnie zachowywać. W/g mojej oceny z tych trzech zadań największe szanse na rekord daje AP20. Jednak liczby pierwsze są tak nieprzewidywalne, że trudno coś prognozować.
Yyyy czy ten exex: AP19.x86.exe powinien działać na każdym win xp 32 ?
Cytat: kempler w 04 Styczeń 2009, 11:19
Yyyy czy ten exex: AP19.x86.exe powinien działać na każdym win xp 32 ?
No właśnie u mnie coś za bardzo nie działa :(
P.S. Mógłby ktoś zrobić instrukcje (dla laika ;D) jak to uruchomić.
Cytat: sesef w 03 Styczeń 2009, 18:23
Aplikacja na 32 bity pod windowsa http://www.speedyshare.com/212443438.html
Swietnie sesef, tylko ja dalej nie qmam ;). Sciagnalem i co mam z ty zrobic? Po odpaleniu mam komunikat: `Nie mozna uruchomic aplikacji, poniewaz jej konfiguracja jest niewlasciwa`. Odpalam to pod XP SP3 z juz zapietymi redistributami (jesli to ma znaczenie).
EDIT: Widze ze jestem trzeci w tym temacie. Sadzilem ze to ja jestem zawsze najwiekszym narzekaczem, ale skoro Kempler i Mchl tez nie qmaja, to znaczy cos jest na rzeczy ;).
Widzę na nasza trójka ma dokładnie taki sam problem... ;)
Start > Uruchom > wpisujecie CMD
1 W linii komend, poslugujac sie komenda cd przechodzicie do folderu gdzie jest zlokalizowany plik APexe.
2 W folderze z plikiem AP.exe powienien sie znalezc plik AP19-ini.txt postaci
x y
Np. 1 1000
i wtedy w wynikach - plik SOL-AP15.TXT powinno się znaleźć
15 65 598396207
15 140 229480759"
3 Z uruchamianiem nie bedzie problemu, wystarczy wpisac nazwa.exe i dac enter :P
Mam nadzieje, ze dzieki tym wskazowkom, poradzicie sobie z uruchamaniem programiku.
a w linii komend jak uruchamiacie musicie chyba też podać argumenty czyli np:
AP19.x86.exe 1 1000
Cytat: lukaszde w 04 Styczeń 2009, 11:42
Start > Uruchom > wpisujecie CMD
1 W linii komend, poslugujac sie komenda cd przechodzicie do folderu gdzie jest zlokalizowany plik APexe.
2 W folderze z plikiem AP.exe powienien sie znalezc plik AP19-ini.txt postaci
x y
(...)
Sugerujesz cofniecie sie 20 lat wstecz? Bo jakos majac pietnascie takie rzeczy robilem... Teraz juz za stary jestem.
to stwórz w katalogu z programem plik AP19-ini.txt w którym będziesz wpisywał zakres i uruchamiaj program kliknięciem na niego a wyniki będziesz miał w plikach SOL-AP15.txt i SOL-AP19.txt :P
możecie u siebie sprawdzić jak działa i czy poprawnie?
http://zeus.mindc.net/~panther/files/ap19_windows_x64.exe (http://zeus.mindc.net/~panther/files/ap19_windows_x64.exe)
dzięki
Zaciągam...
jak aplikacje będą działać poprawnie to trzeba zacząć rozdzielać zakresy i bierzemy się za obliczenia
Windows XP x64 @ T9300
ap19.exe 1000 10000
TIME: 52999405 microseconds
Plik wynikowy:
10001 10000
plik wynikowy masz o nazwie SOL-AP15.txt a ty dałeś dane z pliku zakresowego
dla tego zakresu powinno być:
15 65 598396207
15 140 229480759
15 1156 337523821
17 6682 110101249
U mnie plik SOL w ogóle nie powstał!
to może spróbuj utworzyć pusty plik tekstowy o tej nazwie w katalogu z programem i dopiero go uruchom
SOL-AP19.txt - pusty
SOL-AP15.txt - pusty
Próbowałem różnych kombinacji i jedyne co widzę to to, że zmienia mi plik ini.
wpiszę 333 (do) 3333 to po wykonaniu programu mam 3334 3333, dla 1 (do) 1000 zmienia na 1001 1000.
plik.ini służy do tego, że jak przerwiesz program to zaczyna on później dalsze przeliczania od miejsca określonego w pierwszej pozycja, a jeśli ta liczba jest większa od drugiej to znaczy, że zakres został zakończony
Teoretycznie mogło się coś skopać z obliczeniami przy kompilacji. Mam nadzieję, że Prime32.h/Prime64.h jest dobrane odpowiednio do wersji, bo kompilator się nie poskarży, a program będzie liczył głupoty.
Gdyby skompilować wersję testową zmieniając w AP19.h linia 134
if(k>=10)
na
if(k>=7)
oraz w AP19-64.c linia 32
if(AP_Length>=15){
na
if(AP_Length>=7){
to nawet program, który liczy głupoty, powinien coś wpisać do pliku z wynikami, jeśli się go uruchomi w zakresie 1-1000. Z tego, co wpisze być może mógłbym spróbować zgadnąć, w czym problem.
z tego co zrozumiałem to na windowsie plik wynikowy nie powstaje
Jeszcze można w AP19-64.c po
out = fopen("SOL-AP15.TXT", "a");
fprintf(out,"%d %d %lld\n",AP_Length,difference,First_Term);
dodać
printf("%d %d %d\n",AP_Length,difference,(int)First_Term);
i obserwować, co się pojawi na ekranie.
Cytat: Jarek Wróblewski w 04 Styczeń 2009, 13:56
Teoretycznie mogło się coś skopać z obliczeniami przy kompilacji. Mam nadzieję, że Prime32.h/Prime64.h jest dobrane odpowiednio do wersji, bo kompilator się nie poskarży, a program będzie liczył głupoty.
Gdyby skompilować wersję testową zmieniając w AP19.h linia 134
if(k>=10)
na
if(k>=7)
oraz w AP19-64.c linia 32
if(AP_Length>=15){
na
if(AP_Length>=7){
to nawet program, który liczy głupoty, powinien coś wpisać do pliku z wynikami, jeśli się go uruchomi w zakresie 1-1000. Z tego, co wpisze być może mógłbym spróbować zgadnąć, w czym problem.
po tych zmianach, zawartość pliku SOL-AP15.TXT, dla zakresu 1-1000:
Cytat
10 3 34885523
7 4 521456203
8 5 1059076987
7 5 618419947
7 5 400523197
7 5 692438231
7 5 833400947
7 6 1101329077
7 7 598994027
7 9 434687459
9 12 784730797
9 16 1457831491
12 19 1108058221
8 25 864274319
8 27 1160753959
8 30 1211370239
8 32 1282347991
7 32 961145401
7 34 947001613
7 36 869029297
7 39 1123725461
10 41 199427939
7 45 817682623
7 48 1223836447
8 49 55415093
7 49 530699903
9 49 574121099
8 49 1049405909
7 50 1318362337
7 50 1286319257
7 51 150117533
7 53 790333363
9 53 15338177
7 54 666476507
7 55 248658701
8 56 371285953
7 78 244228547
Wszystko jest OK oprócz testowania pierwszości liczb powyżej 2^32.
Zapewne szwankuje konwersja long long value -> mpz_t n w procedurze PrimeQ z pliku PrimeQ64.h.
Zara pomyślimy jak to obejść...
Takiego mam pomysła, a nawet trzy.
W pliku PrimeQ64.h zamiast 2 linijek
PTR(n)[0] = value;
SIZ(n) =1;
dać 1 linijkę
mpz_set_ui(n,value);
Jeżeli to nie zadziała, spróbować zamiast powyższych 2 linijek dać 4 linijki
mpz_set_ui(n,(unsigned int)(value>>32));
mpz_mul_ui(n,n,1<<16);
mpz_mul_ui(n,n,1<<16);
mpz_add_ui(n,n,(unsigned int)(value^((1LL<<32)-1));
To drugie rozwiązanie ma szansę działać także na 32 bitach, gdyby tam były problemy.
Można też spróbować na 64 bitach kompilować PrimeQ32.h. Jeżeli ten gmp nie jest w pełni dostosowany do 64 bitów i używa słów 32-bitowych, to to ma szansę pójść.
Jeśli coś zadziała, to ustawienia z 7-ką dadzą masę rozwiązań, a powrót do 15-tki da to, co ma być.
Cytat: Jarek Wróblewski w 04 Styczeń 2009, 15:29
Takiego mam pomysła, a nawet trzy.
W pliku PrimeQ64.h zamiast 2 linijek
PTR(n)[0] = value;
SIZ(n) =1;
dać 1 linijkę
mpz_set_ui(n,value);
zawartość pliku SOL-AP15.TXT dla zakresu 1-1000
Cytat
10 3 34885523
7 4 521456203
8 5 1059076987
7 5 618419947
7 5 400523197
7 5 692438231
7 5 833400947
7 6 1101329077
7 7 598994027
7 9 434687459
9 12 784730797
9 16 1457831491
12 19 1108058221
8 25 864274319
8 27 1160753959
8 30 1211370239
8 32 1282347991
7 32 961145401
7 34 947001613
7 36 869029297
7 39 1123725461
10 41 199427939
7 45 817682623
7 48 1223836447
8 49 55415093
7 49 530699903
9 49 574121099
8 49 1049405909
7 50 1318362337
7 50 1286319257
7 51 150117533
7 53 790333363
9 53 15338177
7 54 666476507
7 55 248658701
8 56 371285953
7 56 1251227567
7 117 388651139
7 123 696612359
7 128 744170807
Cytat
Jeżeli to nie zadziała, spróbować zamiast powyższych 2 linijek dać 4 linijki
mpz_set_ui(n,(unsigned int)(value>>32));
mpz_mul_ui(n,n,1<<16);
mpz_mul_ui(n,n,1<<16);
mpz_add_ui(n,n,(unsigned int)(value^((1LL<<32)-1)));
zawartość pliku SOL-AP15.TXT dla zakresu 1-1000: pusto
Pusto, bo głupotę napisałem. Zamiast
mpz_add_ui(n,n,(unsigned int)(value^((1LL<<32)-1)));
powinno być
mpz_add_ui(n,n,(unsigned int)(value&((1LL<<32)-1)));
|-? głowa mnie rozbolała od przeczytania tego tematu, matematyka to dla mnie w większości czarna magia %-)
Jeśli przewidywany czas obliczeń, żeby uzyskać jakiś rezultat jest dość długi, teoretycznie mógłbym skrobnąć na szybko jakiś prosty serwerek i skrypty po stronie klienta automatycznie przydzielające kolejne zakresy.
Projekt BOINC raczej nie ma sensu, bo byłaby to konkurencja dla PrimeGrida i to z początku dość słaba (zanim by się rozbudowało wszystko do takiego poziomu jak oni mają, minęłoby zapewne wiele miesięcy); nie wspominając już o tym, że aplikację trzeba obudować wrapperem lub wbudować BOINC_API oraz przygotować całe środowisko serwerowe, co też pewnie zajęłoby z miesiąc dla uzyskania pierwszej stabilnej wersji.
No chyba, że mamy jakąś pewność, że byłoby co liczyć przez co najmniej parę miesięcy - wtedy można coś w tym temacie pomyśleć.
Cytat: TJM w 04 Styczeń 2009, 16:32
No chyba, że mamy jakąś pewność, że byłoby co liczyć przez co najmniej parę miesięcy - wtedy można coś w tym temacie pomyśleć.
Zagadnień do liczenia na dowolnie długi czas mogę spokojnie dostarczyć. Na razie jest chyba trochę przedwcześnie, aby mówić o szczegółach BOINC-ów czy serwerków. Myślę, że najpierw parę w miarę krótkich zagadnień trzeba rozwiązać dzieląc zakresy
ręcznie. To pokaże nam wszystkim, na czym polega ta zabawa i jakie się mogą pojawiać problemy. Na dłuższą metę rozdział zadań musi być automatyczny, więc jakiś
serwerek to chyba absolutne minimum, jeśli mamy zamiar myśleć o czymś poważnym.
Cytat: Jarek Wróblewski w 04 Styczeń 2009, 16:08
Pusto, bo głupotę napisałem. Zamiast
mpz_add_ui(n,n,(unsigned int)(value^((1LL<<32)-1)));
powinno być
mpz_add_ui(n,n,(unsigned int)(value&((1LL<<32)-1)));
niestety, dalej pusto
a może chodzi o to, że podczas kompilacji sypie mi warningami o
konwersji '__int64' na 'unisgned int', po modyfikcjach pliku PrimeQ64.h
lub konwersji '__int64' na 'int' w pliku AP19.h
może dlatego gubimy liczby powyżej 2^32 z powodu właśnie niezamierzonej konwersji typów
EDIT:
zaczyna mi się tu coś niepodobać, bo kompilacja czysto 32 bitowa, także wypluwa mi puste pliki (a raczej ich brak)
Cytat: mindc w 04 Styczeń 2009, 18:18
a może chodzi o to, że podczas kompilacji sypie mi warningami o
konwersji '__int64' na 'unisgned int', po modyfikcjach pliku PrimeQ64.h
lub konwersji '__int64' na 'int' w pliku AP19.h
może dlatego gubimy liczby powyżej 2^32 z powodu właśnie niezamierzonej konwersji typów
W AP19.h sobie może sypać warningami, bo nie mapowałem wyraźnie typów, to powinno być OK. Coś jest skopane w definicji PrimeQ i teraz już nie wiem co.
***********
Sprawdzenie procedury PrimeQ:
Robimy plik PrimeQ.h:
Cytat
int PrimeQ(long long value)
{
int out;
char c[64];//usunac jak bedzie OK
mpz_t n;
mpz_init(n);
mpz_set_ui(n,(unsigned int)(value>>32));
mpz_mul_ui(n,n,1<<16);
mpz_mul_ui(n,n,1<<16);
mpz_add_ui(n,n,(unsigned int)(value&((1LL<<32)-1)));
out=mpz_probab_prime_p (n,1);
mpz_get_str(c,10,n);//usunac jak bedzie OK
printf("%s %d\n",c,out);//usunac jak bedzie OK
mpz_clear(n);
return out;
}
oraz Test.c:
Cytat
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <gmp.h>
#include "PrimeQ.h"
int main(int argc, char *argv[])
{
int i;
long long n;
n=1000000019;
for(i=1;i<=13;i++)
{
n+=2000000000;
PrimeQ(n);
};
system("PAUSE");
return 0;
}
Po skompilowaniu i odpaleniu Test.c powinien dać na 32 lub 64 bitach:
Cytat
3000000019 1
5000000019 0
7000000019 0
9000000019 0
11000000019 0
13000000019 0
15000000019 0
17000000019 0
19000000019 0
21000000019 1
23000000019 0
25000000019 0
27000000019 1
EDIT:
@mindc: Jak będę wiedział, jakie wyniki drukuje u Ciebie powyższy test, to dopiero wtedy możemy coś dalej kombinować. To się powinno zachowywać jak wyżej, niezależnie od liczby bitów.
Pracujesz na uniwersytecie?
bo w sumie, to ja slyszalem, ze w polsce to mocy obliczeniowej nie brakuje (w przeciwienstwie do ludzi i kasy)... nie zastanawiales sie nad zaprzegnieciem jakiegos superkomputera?
Cytat: bartsob5 w 05 Styczeń 2009, 18:42
Pracujesz na uniwersytecie?
bo w sumie, to ja slyszalem, ze w polsce to mocy obliczeniowej nie brakuje (w przeciwienstwie do ludzi i kasy)... nie zastanawiales sie nad zaprzegnieciem jakiegos superkomputera?
HEH - Bartsob5 - odnoszę wrażenie że to co piszesz jest dokładnie przeciwstawieniem tego do czego nawołujemy - czyli potrzebujemy więcej mocy obliczeniowej i chcemy rozpraszać duże obliczenia z superkomputerów na mniejsze maszyny - jakoś tak mi tu taki kontrast wchodzi na myśl. :P
Tyle, że jak dotąd wszelkie uczelnie, które staraliśmy się zainteresować BOINCem odpowiadały: "Ale my mamy gdzie liczyć"
Cytat: Jarek Wróblewski w 04 Styczeń 2009, 18:38
Sprawdzenie procedury PrimeQ (...)
x64:
Cytat
3000000019 1
5000000019 0
7000000019 0
9000000019 0
11000000019 0
13000000019 0
15000000019 0
17000000019 0
19000000019 0
21000000019 0
23000000019 0
25000000019 0
27000000019 1
x86:
Cytat
3000000019 1
5000000019 0
7000000019 0
9000000019 0
11000000019 0
13000000019 0
15000000019 0
17000000019 0
19000000019 0
21000000019 1
23000000019 0
25000000019 0
27000000019 0
Walczcie Panowie! A jak już zwalczycie to dajcie znać - ściągnę sobie ten programik, rozdzielimy zakresy i jazdaaaa :attack:
@bartsob5: Tak, pracuję na Uniwersytecie Wrocławskim. O żadnych łatwo dostępnych superkomputerach mi nic nie wiadomo.
@mindc: No to chyba teraz wiadomo tyle, że to Twoje GMP jest jakieś lewe, przynajmniej test pierwszości daje wyniki do bani powyżej 2^32.
Zaraz pomyślę nad następnym testem, może da się to obejść...
EDIT
Spawa jest banalna. Robisz program
Cytat
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <gmp.h>
int main(int argc, char *argv[])
{
int i;
char c[64];
char d[64];
mpz_t n;
mpz_t m;
mpz_t dwa;
mpz_init(n);
mpz_init(m);
mpz_init(dwa);
mpz_set_str(n,"15000000019",10);
mpz_set_str(dwa,"2",10);
for(i=1;i<=12;i++){
mpz_add_ui(n,n,2000000000);
mpz_powm(m,dwa,n,n);
mpz_get_str(c,10,n);
mpz_get_str(d,10,m);
printf("%s %s\n",c,d);
};
mpz_clear(n);
system("PAUSE");
return 0;
}
Jeśli dostajesz dokładnie to
Cytat
17000000019 1855924640
19000000019 18764911666
21000000019 2
23000000019 8
25000000019 14662086300
27000000019 2
29000000019 25672840505
31000000019 3693428967
33000000019 8068775031
35000000019 134217728
37000000019 16095345138
39000000019 38213931463
to jestem w stanie prosto napisać procedurę testującą pierwszość.
Jeśli dostajesz cokolwiek innego, to przynajmniej wiadomo, co można zrobić z Twoim GMP - ale tego już nie napiszę na forum ;)
Wyniki nowego testu...
x86
Cytat
17000000019 1855924640
19000000019 18764911666
21000000019 2
23000000019 8
25000000019 14662086300
27000000019 2
29000000019 25672840505
31000000019 3693428967
33000000019 8068775031
35000000019 134217728
37000000019 16095345138
39000000019 38213931463
x64
Cytat
17000000019 1855924640
19000000019 18764911666
21000000019 2
23000000019 8
25000000019 14662086300
27000000019 2
29000000019 25672840505
31000000019 3693428967
33000000019 8068775031
35000000019 134217728
37000000019 16095345138
39000000019 38213931463
wygląda dobrze ;D
Może to w końcu zadziała
http://www.math.uni.wroc.pl/~jwr/BaP/
plik PrimeQ.zip
no i zadziałało ;D
http://zeus.mindc.net/~panther/files/ap19_windows_x64.exe (http://zeus.mindc.net/~panther/files/ap19_windows_x64.exe)
zaraz testnę...
1 do 1000
15 65 598396207
15 140 229480759
1 do 10000
15 65 598396207
15 140 229480759
15 65 598396207
15 140 229480759
15 1156 337523821
17 6682 110101249
tylko jeszcze z nazwą pliku trzeba by coś zrobić bo ap19 tworzy wynik ap15 ;).
Jak dzielimy zakresy?
Cytat: Szopler w 07 Styczeń 2009, 17:32
tylko jeszcze z nazwą pliku trzeba by coś zrobić bo ap19 tworzy wynik ap15 ;).
To jest celowe. W pliku SOL-AP15.TXT są zapisywane wszystkie AP15 i dłuższe. Z punktu widzenia poszukiwań są to śmieci, ale takie śmieci dobrze jest zapisywać, żeby wiedzieć co się dzieje - ile jakich rozwiązań znajduje program, np. ile 18-tek, 17-tek.
Jeśli będzie AP19, to będzie zapisane w SOL-AP15.TXT oraz w SOL-AP19.TXT (dwa razy).
Cytat: Szopler w 07 Styczeń 2009, 17:32
Jak dzielimy zakresy?
Moja sugestia. Piszcie tu po kolei posty:
Biorę od ... do ...
To ja...
pierwszy milion [1 do 1 000 000] :D
ok ja od 1 000 001 do 2 000 000
to ja od 2000000 do 5000000
Uważajta to się nieco czasu liczy... ;)
Wyniki 1 do 1 000 000:
15 65 598396207
15 140 229480759
15 1156 337523821
17 6682 110101249
16 10579 1121933177
15 40013 1218234179
15 88889 87380341
15 119269 805503269
15 123908 1190445023
15 137684 488283073
15 144577 399444719
15 226495 1433893103
16 266144 410043391
16 340496 908653751
15 343489 816836677
16 380386 1010600791
15 531180 121932113
15 584570 1068368759
16 620733 1053699379
15 627605 979138847
16 650092 1304938421
16 704608 1087724507
15 801484 242973079
16 858761 463282423
15 902455 1315101839
15 923597 956815309
15 999383 718679333
Teraz biorę od 5 000 000 do 7 000 000.
dlatego ja biorę po milionie - w sam raz na raz
Panie Jarku - rozumiem, że możemy dopiero chwalić się w tym wątku jak utworzy nam plik SOL-AP19.TXT
Cytat: emik w 07 Styczeń 2009, 19:49
Panie Jarku - rozumiem, że możemy dopiero chwalić się w tym wątku jak utworzy nam plik SOL-AP19.TXT
Tak. Jeśli ktoś dostanie plik SOL-AP19.TXT to niech się pochwali.
Jednak nie kasujcie pliku ze śmieciami SOL-AP15.TXT - jeśli nie znajdzie się rozwiązanie, to może będę chciał je kiedyś przeanalizować.
Myślę, że "Jarku" w zupełności wystarczy, nie ma potrzeby utrzymywać sztucznego dystansu, zwracanie się na "Ty" lub po imieniu jest w/g mnie odpowiedniejsze.
Wynik
5 000 000 do 7 000 000
15 5013452 1368397853
15 5020312 486259331
16 5099835 305320991
15 5111767 104480839
16 5246635 103505323
15 5322984 511794671
17 5353247 605459201
16 5710040 922409141
15 5827337 1115111603
17 6048084 647252449
16 6340225 127734281
15 6435251 664966447
16 6627536 773502491
17 6750574 1228004317
17 6816384 1014615383
17 6840922 1248448199
Teraz porcja na nockę - 7 000 000 do 10 000 000 :).
wynik
1 000 000 - 2 000 000
16 1076266 664325611
15 1101302 400424237
16 1828488 759373873
16 1852568 865245361
15 1876856 879681449
15 1908153 781761527
15 1922346 1011811651
15 1929050 1037784037
kolej na 10 000 000 do 15 000 000
wynik 2kk-5kk
15 65 598396207
15 140 229480759
15 1156 337523821
17 6682 110101249
15 2120389 903477457
15 2251951 895438769
18 2266789 25243243
16 2396325 609639763
15 2402823 132534071
15 2463453 1073921413
15 2528231 886747711
15 2606755 604376281
15 2642421 226457657
17 2735948 784466629
15 2962326 547327877
15 3209041 687823379
15 3259523 629616073
15 3712840 442283707
15 4055344 1021251457
15 4136756 435696307
15 4161664 1166102401
16 4237010 693953023
15 4604333 153161321
15 4627352 346109429
15 4932404 1140140347
biorę od 15kk do 20kk
Nie wiem dlaczego, ale miałem w nocy "Cannot write AP-19.ini". Nigdzie nie było otwarte... Doliczyło się od 7kk do ~7,350kk i stop. Dzisiaj spróbuję puścić to kawałkami po 1kk.
Edit:
No i znów ZONK!
Tym razem na 7,178kk.
Spróbuję jeszcze bez pliku ini, podam zakres z linii poleceń.
wyniki dla 15kk - 20kk
pojawił się plik SOL-AP19.TXT :)
19 16584560 1358498353
pozostałe wyniki:
15 15138428 749549951
16 15857632 955824907
15 15910886 396360889
15 15936264 23299873
15 16087278 72796519
19 16584560 1358498353
15 16884359 377016413
15 16933086 352235431
16 17408997 1295559497
15 17610282 247981471
15 18190245 162679219
16 18633552 368251241
15 18818657 1064611469
15 18978866 1399886633
15 19126083 118750913
17 19811599 527144591
15 19844181 199602043
puszczam od 20kk do 25kk
Congratulations! :D
no to juz jakiś konkretny sukces
Również gratuluję, tym razem publicznie. Ogłoszenie wyniku jest w:
http://tech.groups.yahoo.com/group/primenumbers/message/19789
Ponieważ Machloj nie chciał się ujawnić, zgłosiłem znalazcę jako anonimowego. Po wysłaniu przeze mnie ogłoszenia, Machloj zdecydował się na ujawnienie nicku. To już doślę w prywatnym liście do administratora strony
http://hjem.get2net.dk/jka/math/aprecords.htm
On zazwyczaj aktualizuje stronę w tym samym dniu, ale późno. A póki co, szukajcie dalej.
Wyniki dla zakresu 7kk do 8kk:
15 7076469 1162880137
17 7308053 1259497297
16 7830300 304595407
15 7864644 179852677
brawo - liczymy dalej
Wyniki 8kk do 9kk:
16 8024725 63922097
15 8339358 1171099463
15 8655182 507277391
i od 9kk do 10kk:
17 9081831 294652403
15 9385739 984391381
16 9472291 725520583
15 9517913 76421117
BIORĘ od 25kk do 30kk.
wyniki od 20kk do 25kk:
16 20010236 237546269
15 20131879 948768773
15 20193127 148422349
15 20659740 1027006579
15 20697908 1055463659
15 20703975 915499309
15 20973824 910940159
15 21287634 1023120053
16 21425887 84426737
15 22170725 233680379
16 22298138 871573699
16 22746211 587601533
17 22996858 406621703
15 23185187 1086820711
15 23379813 824811269
16 23575662 783350467
15 23610092 86743009
15 24066100 427928989
15 24155743 467047657
15 24171398 903403757
15 24319456 849801373
15 24855692 70021447
15 24967940 1141153421
15 24993975 1274634503
biorę od 30kk do 40kk
czy ktos juz kompilował AP20 i AP21 pod windowze 64?
i jeszcze raz poprosiłbym o instrukcję używania programu AP19
biorę od 40 kk do 70 kk
Cytat: Troll81 w 09 Styczeń 2009, 09:26
czy ktos juz kompilował AP20 i AP21 pod windowze 64?
proszę o sprawdzenie:
http://zeus.mindc.net/~panther/files/ap20_windows_x64.exe (http://zeus.mindc.net/~panther/files/ap20_windows_x64.exe)
http://zeus.mindc.net/~panther/files/ap21_windows_x64.exe (http://zeus.mindc.net/~panther/files/ap21_windows_x64.exe)
uwaga: ap20 i ap21 uruchamia się troszkę inaczej niż ap19, to skrócony opis:
AP20
Cytat
(...)
Procedurę AP20(K,64*s) należy wykonać dla argumentów K poczynając od 1, jednak nie dalej niż do K=1757658938.
Po skompilowaniu program ap20 pobiera "s" oraz zakres argumentów K z linii poleceń:
./ap20 s Kmin Kmax
a jeśli tam ich nie ma, to z pliku AP20-ini.txt
W tym pliku też jest zapisywany postęp pracy, przerwany program można zrestartować nie podając argumentów w linii poleceń.
(...)
Rozpocząć poszukiwania na 46 frontach (s=1 do 46) jednocześnie. W mniejsze s można włożyć nieco więcej mocy niż w większe, ale jeśli chce się pobić rekord, to trzeba się poruszać w miarę równomiernie, bo wraz ze wzrostem K gęstość rozwiązań maleje. Jeśli dla jakiegoś s znajdzie się rozwiązanie, to należy zatłuc programy liczące dla s większych od niego i przerzucić moce na mniejsze s lub na inny projekt.
Przykładowo: liczymy s=1,...,46, znajdujemy coś dla s=25. Zabijamy s=26,...,46 i przerzucamy moce na s=1,..,25. Należy jednak odnotować postęp zabitych programów, bo przyda się to w przyszłości przy szukaniu AP21. Możemy też od razu kontynuować poszukiwania przy pomocy AP21.
AP21
Cytat
(...)
Procedurę AP21(K,64*s) należy wykonać dla argumentów K poczynając od 1, jednak nie dalej niż do K=1757658938.
Po skompilowaniu program ap21 pobiera "s" oraz zakres argumentów K z linii poleceń:
./ap21 s Kmin Kmax
a jeśli tam ich nie ma, to z pliku AP21-ini.txt
W tym pliku też jest zapisywany postęp pracy, przerwany program można zrestartować nie podając argumentów w linii poleceń.
(...)
Rozpocząć poszukiwania na 40 frontach (s=47 do 96) jednocześnie. W mniejsze s można włożyć nieco więcej mocy niż w większe, ale jeśli chce się pobić rekord, to trzeba się poruszać w miarę równomiernie, bo wraz ze wzrostem K gęstość rozwiązań maleje. Jeśli dla jakiegoś s znajdzie się rozwiązanie, to należy zatłuc programy liczące dla s większych od niego i przerzucić moce na mniejsze s lub na inny projekt.
Jeżeli zabijamy dla jakiegoś s program AP20, to kontynuujemy poszukiwania przy pomocy AP21. W tym celu wystarczy:
zabić AP20, przemianować AP20-ini.txt na AP21-ini.txt
odpalić AP21
Cytat: Troll81 w 09 Styczeń 2009, 09:26
i jeszcze raz poprosiłbym o instrukcję używania programu AP19
biorę od 40 kk do 70 kk
ap19_windows_x64.exe 40000000 70000000
już wycyrklowałem i pierwszy milionik przeliczony :D 29 to go
Skracam zakres do 50 kk bo inaczej to się nie doliczę :(
Cytat: sesef w 03 Styczeń 2009, 18:23
Pierwszy etap zakończony
Aplikacja na 32 bity pod windowsa http://www.speedyshare.com/212443438.html
Teraz jeszcze spróbuje skompilować na x64.
Witam, chciałbym się przyłączyć do liczenia niestety aplikacja dostępna pod tym linkiem zwraca błąd
Nie można uruchomić aplikacji, ponieważ jej konfiguracja równoczesna jest niewłaściwa. Więcej szczegółów można znaleźć w dzienniku zdarzeń aplikacji.
a w dzienniku zdarzeń jest tak
Nie można wygenerować kontekstu aktywacji dla "E:\ap\AP19.x86.exe". Nie można odnaleźć zestawu zależnego Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8".
Użyj narzędzia sxstrace.exe, aby uzyskać szczegółową diagnozę.
Pracuje na systemie: Microsoft Windows Vista (6.0) Business Edition 32bit, SP1 (Build 6001)
Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
ponoć trza toto zainstalować
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647
To akurat było kompilowane VS 2008
spróbuj zainstalować to:
Microsoft Visual C++ 2008 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en
albo to: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
Podejrzewam, że SP1 zawiera od razu te podstawowe, ale po ostatnich przygodach z MS wszystkiego się już mogę po tych paczkach spodziewać.
Cytat: sesef w 09 Styczeń 2009, 16:16
albo to: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
To pomogło, dzięki :D
Biorę od 50kk do 70kk, mam nadzieję że się nie wywali przez weekend.
Machloj i Jarek odznaczeni zostali odpowiednią nagrodą. Do obejrzenia w profilach obu panów :)
Wyniki od 10kk do 15kk
15 10005043 1014122833
15 10191559 1101401941
15 10420554 1343996833
17 10763815 47406803
15 11328724 903283169
15 11399294 704242927
15 11483895 927912103
15 12575320 607574087
15 12734076 1433022169
15 12976740 610149251
15 13205156 1468678571
16 13394012 751294813
15 13657849 268515589
16 13803088 1193651351
15 14059384 924656141
16 14403240 939690497
15 14553607 548142493
15 14623926 1360918213
15 14761970 924286567
biorę od 70kk do 80kkCytat: Troll81 w 09 Styczeń 2009, 09:26
czy ktos juz kompilował AP20 i AP21 pod windowze 64?
proponuję najpierw skończyć AP19 a dopiero później brać się za kolejne
wszystko dotyczące AP19 proszę kontynuować tu: http://www.boincatpoland.org/smf/zespol-boincpoland/ap19/ (http://www.boincatpoland.org/smf/zespol-boincpoland/ap19/)
Czy tylko ci którym się fartło dostaną odznaczenia takie śliczne?? :closedeyes:
Takie śliczne tylko dla znalazców. Zastanowię się, czy wszystkim szukającym należą się jakieś mniej śliczne. :P
A pana Jarka chciałbym zaprosić na najbliższe spotkanie liczydłowych festung Breslau :D Ja będę na pewno morze jeszcze KrzychuP i NetMonitoring się zjawi. Będzie można przy Spiżowym piwku pogadać o przetwarzaniu rozproszonym :D
Chętnie poznam w realu liczydłowych z mojej okolicy, ale w tej chwili jestem nadziębiony i nie myślę o żadnych spotkaniach. Będziemy w kontakcie.
Ja też jestem nadziębiony :D a do połowy stycznia jeszcze trochę czasu zostało :D
a poniżej dzisiejsze wyniki losowania totolotka:
15 40637043 245467961
15 40729306 673202867
15 40793454 414349291
16 41655585 62993587
15 41716271 168272089
15 41878393 17462297
15 41909255 1053928927
15 42456659 921294089
15 42489606 215024461
15 42949789 993167299
18 42967030 495481669
15 43457374 178849249
17 43765621 1085084761
15 43858191 390929989
15 43880823 702346241
15 43928944 347963279
15 43974133 768371713
17 43980507 626438611
15 44389251 979003477
16 44531510 826081507
16 44712186 404546147
17 44942794 373667993
15 45044572 80636329
16 45367535 471676693
15 45624740 372838783
15 45816341 853571749
15 45834672 219849419
15 46367133 1328097053
15 46764219 968589701
15 48043309 1190192603
15 48199969 1424999099
16 48376924 342491489
15 48457781 896171531
15 48668212 449320301
15 49055307 988113121
15 49340929 1282487911
15 49857661 1426774289
Jakby ktoś chciał skompilowałem wersje z SSE2 na 32 bitowe systemy. Z moich obliczeń czasowych dla zakresu 1-4k wynika że liczy się 4 sec szybciej, więc w ogólnym rozrachunku powinno być trochę szybciej.
http://www.speedyshare.com/813321519.html
Ile się będzie liczył 1 mln zakres na 32 bitach?
PS."System nie może wykonać określonego programu."
Cytat: Szopler w 11 Styczeń 2009, 18:41
Ile się będzie liczył 1 mln zakres na 32 bitach?
PS."System nie może wykonać określonego programu."
Co do 1 mln nie sprawdzałem.
Co do działania spróbuj zainstalować to: http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en
Cytat: Troll81 w 09 Styczeń 2009, 22:42
Ja też jestem nadziębiony :D a do połowy stycznia jeszcze trochę czasu zostało :D
a poniżej dzisiejsze wyniki losowania totolotka:
15 40637043 245467961
15 40729306 673202867
15 40793454 414349291
16 41655585 62993587
15 41716271 168272089
15 41878393 17462297
15 41909255 1053928927
15 42456659 921294089
15 42489606 215024461
15 42949789 993167299
18 42967030 495481669
15 43457374 178849249
17 43765621 1085084761
15 43858191 390929989
15 43880823 702346241
15 43928944 347963279
15 43974133 768371713
17 43980507 626438611
15 44389251 979003477
16 44531510 826081507
16 44712186 404546147
17 44942794 373667993
15 45044572 80636329
16 45367535 471676693
15 45624740 372838783
15 45816341 853571749
15 45834672 219849419
15 46367133 1328097053
15 46764219 968589701
15 48043309 1190192603
15 48199969 1424999099
16 48376924 342491489
15 48457781 896171531
15 48668212 449320301
15 49055307 988113121
15 49340929 1282487911
15 49857661 1426774289
kolejne wyniki umieszczaj w temacie dotyczącym AP19: http://www.boincatpoland.org/smf/zespol-boincpoland/ap19/
Ja mam takie pytanie co do programu czy jak już nie zostanie znalezione żadne AP19 to czy takie już nie istnieje czy może program jest tak skonstruowany że na chwilę obecną nie jest w stanie znaleźć krótszego AP19. Wczoraj myślałem nad tym aby w niedalekiej przyszłości (czytaj jak zmodernizuje swojego grata o jakąś kartę która wspiera CUDA albo OpenCL) w ramach własnej edukacji mógłbym spróbować przerobić ten program tak aby korzystał z nVidia CUDA albo nawet z OpenCL (z OpenCL nie wiem jak jest niby nVidia zapowiedziała że będzie wpierać to cudo i ATI również zapowiedziało że będzie to wpierać, ale jakoś się nie mogę doczytać czy już to wspierają czy tylko mają takie plany) część członków B@P może się pochwalić w tej dziedzinie niezłą mocą obliczeniową, która powinna znacznie skrócić czas poszukiwania nowych AP.
Na razie w AP19 zostało przeszukane niecałe 20% zakresu i nie przypuszczam żebym zdążył zrobić cokolwiek przed zakończeniem szukania AP19 dlatego pytam czy potem znowu można szukać następnych AP19 przy pomocy odpowiednio dostosowanego programu, jak nie to najwyżej zrobi się coś na AP20.
Jeśli obecny program nie znajdzie lepszego AP19 (nie krótszego, bo wszystkie AP19 mają po 19 wyrazów, tylko mającego mniejszy wyraz początkowy), to wydaje się mało sensowne kontynuowanie poszukiwań w/g tej samej strategii. Wtedy musiałbym napisać inny program, nieco inaczej skonstruowany. Obecny rekord na pewno jest możliwy do pobicia, to jest tylko kwestia czasu, być może sporego. Całkowity przebieg obecnego programu AP19 jest zbyt krótki, aby wartało robić specjalne bajery w celu jego uruchomienia.
Są jednak zagadnienia, które wymagają tak dużego nakładu CPU, że zainwestowanie czasu ludzkiego w przygotowanie obliczeń jest opłacalne. Ja jestem w stanie napisać programy do takich zagadnień, jednak na początek zaproponowałem programy o krótszym przebiegu, żebyśmy zobaczyli na czym zabawa polega i jakie problemy generuje.
Co do AP20, to przed przeliczeniem s do 46, K do 10,000,000, nie ma sensu nic dalej planować, bo a nuż ten przebieg coś znajdzie i zupełnie zmieni zakres dalszych sensownych poszukiwań.
Gdybyś Ty lub ktokolwiek inny chciał wkładać wysiłek w dostosowywaniu programu do CUDA lub innych cudów, to ja musiałbym najpierw przygotować program, który w zamierzeniu miałby odpowiednio długi czas obliczeń.