Aktualności:

Nowy polski projekt BOINC - Universe@Home

Menu główne

pi@home?

Zaczęty przez Akira, 17 Listopad 2007, 23:02

Akira

Witam
Tak naszła mnie myśl czy by nie stworzyć projektu który raz na zawsze okrył tajemnicę z przed 5 tysięcy lat. Powstały programy które obliczają taką liczbę (SuperPi) lecz nijak ma sie to do obliczenia, zbyt mała moc komputera. Czy obliczenie tej liczby nadaje się na obliczenie rozproszone bo mam małe wątpliwości. I czy to jest realne?

Pozdrawiam
Dawid

Pigu

a na jakim dysku będziesz mieścił wyniki? ;P

Akira

Są dostępne w sieci shelle z terabajtowymi dyskami za grosze

bartsob5

znanych jest conajmniej 6,442,450,938 cyfr po przecinku pi... wiec problematyczne byloby szukanie tego, bo trzeba sporo cyferek znalezc zeby sie odznaczyc, a byloby to skomplikowane bo zwykla zmienna double w c++ ma tylko 8 bajtow o ile pamietam (czyli nie jest zbyt pojemna)

Pigu

rozwiązywaliśmy takie problemy tworząc nowy typ który był tablicą (której każde pole było jedną cyfrą) i definiując nowe funkcje-działania - w efekcie zamiast 64bit wartości otrzymaliśmy 64bit cyfr - przyrost "pojemności" zmiennej kolosalny (jak również spowolnienie obliczeń w porównaniu do "normalnych" typów)

krzyszp

Cytat: "Pigu"przyrost "pojemności" zmiennej kolosalny (jak również spowolnienie obliczeń w porównaniu do "normalnych" typów)

I tu jest właśnie pole do popisu dla BOINC!

Spadek tempa obliczeń powoduje powolne przeliczanie kolejnych liczb na jednym komputerze. Dlatego można wysyłać pojedyńcze (lub małe zbiory) liczb na poszczególne maszyny maszyny i wykorzystać tysiące "naszych" komputerów.

Np. 10 liczb na komputer * 1000 komputerów = 10000 przeliczonych liczb "za jednym" zamachem!

Do tego właśnie BOINC się nadaje chyba najlepiej...

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

bartsob5

no wczoraj troche na ten temat poczytalem na googlach i jestem sceptycznie nastawiony...

bo jest kilka wzorow do obliczania liczby pi (a wlasciwie liczb powiazanych z pi - 1/pi, 4/pi itp) no i w zasadzie nie wiadomo czy i ktore sa najdokladniejsze i nie wiadomo czy nie sa one bledne w ktoryms miejscu. a to, ze niektore z nich dzialaja wtedy i tylko wtedy kiedy zna sie wczesniejsze rozwiniecie to nie wspominam...

Pigu

będzie niezbędna wizyta u profesorstwa na uczelni :D

bartsob5

przyjrzalem sie temu wszystkiemu... niestety moj kalkulator nie jest tak doskonaly (texasa sie nie dorobilem) ale mam juz tam troche skrystalizowany poglad na zagadnienie...

przegladajac internet spodobaly mi sie wzory:
Bailey-Borwein-Plouffe 'a

wygladajacy:
(nie ma tu znaczka sumy, wiec zrobie to w konwencji zapisu C)

pi=0
for(n=0;;n++)
{
pi+=(4/(8n+1)-2/(8n+2)-1/(8n+5)-1/(8n+6))*(1/16)^n
}

lub braci Chudnovsky

for(n=0;;n++)
{
temp=((-1)^n*(6n)!*13591409+545140134n))/((3n)!n!^ 3*640320^(3n+1,5))

}

temp=12*temp;

pi=pow(temp,-1)


komentarz? oba wzory sa rzeznickie, chociaz ten drugi bardziej (n!^3 WTF?)
roznice? dla n=0 pierwszy daje przyblizenie 3,1(3) drugi 3,141592654 (i prawdopodobnie kolejne 7 cyfr, ktorych moj kalkulator nie obejmuje)
dla n=1 pierwszy daje 3,141 (o ile pamietam) natomiast drugi daje dokladna wartosc pi prawdopodobnie dokladny wynik dla 28 cyfr po przecinku (z moim kalkulatorem nawet nie jestem w stanie tego zweryfikowac.

problemy?
o ile pierwszego wzoru tak bardzo nie analizowalem (nie podoba mi sie ze wzgledu na:
-trzeba wykonywac petle 14 wiecej razy niz przy drugim wzorze aby otrzymac takie same rozwiniecie
-wolalbym unikac dzielenia i minimalizowac je do minimum (w dzieleniu najczesciej wystepuja bledy)
)
to drugi ma bardzo skomplikowana budowe... przede wszystkim ograniczeniem jest ilosc miejsca... szacuje ze zeby zapisac licznik tego rownania dla n=1000000 (a dla takiego n nawet sie nie zblizamy do rekordu) potrzebna by byla tablica o 37 000 000 komorek (sa to szacunki, prawdopodobnie tyle samo starczy dla 9000000) bo tyle wlasnie wyszacowalem ze jest potrzebne by zmiescic samo (6n)! wiec napisanie takiej aplikacji byloby problematyczne zwlaszcza z punktu widzenia ramo-żerności...


jak ja bym to widzial?
napisanie 3 aplikacji...
jedna (nr 1) rozsyla probki w ktorych zawarte jest n, komputer przelicza wartosc temp
druga (nr 2) w drugim etapie laczy po 2 wyniki z fazy pierwszej (dodawania ekstremalnie malych liczb, 2, nie wiecej jak 10...) tak dlugo az wszystkie wyniki z fazy pierwszej beda zsumowane
trzecia (nr 3) pomnozy wynik uzyskany razy 12 i podniesie do potegi -1...

obawiam sie jednak ze napisanie aplikacji nr 1 zajmie wiecej czasu niz wyliczenie samej pi...

Akira

http://www.boincatpoland.org/smf/ostatnio-znalezione/silly-pi-calculation/

Mchl

A w Utah bodajże chcieli kiedyś przedefiniować pi do 3,2...

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

mindc

Nie wiem gdzie to słyszałem, dawno temu to było
że gdyby, przy obliczaniu trajektorii lotu, w podróży na księżyc,
użyć liczby PI z dokładnością, powiedzmy do kilku, kilkunastu miejsc po przecinku,
to lądownik mógłby nie trafić w powierzchnie  XD



Mchl

Śmiem wątpić. Lądownik wszak był pilotowany przez człowieka :P

Trochę prawdy w tym może być. Nie tyle chyba w samym lądowaniu, co w dotarciu na Księżycową orbitę. Pamiętacię tą scenę z Apollo 13: "Panowie, od teraz pilotuje nas Sir Isaak Newton"?
Chociaż i tak uważam, że prawdopodobnie wystarczy nie więcej niż 10 miejsc. Pamiętaj, że z sumaka logarytmicznego masz 3-4 miejsca po przecinku, a z tablic logarytmicznych kolejne 3-5. Tak więc nawet jak weźmie się do obliczeń wiele miejsc po przecinku liczby pi, to dokładność się zatraca podczas wykonywania obliczeń. A jednak jakoś dolecieli.

W nagłych wypadkach wzywać przez: mail: mchlpl[at]gmail.com | PM|mchl[a]boincatpoland.org

Akira

Cytat: Mchl w 07 Styczeń 2009, 09:46
A w Utah bodajże chcieli kiedyś przedefiniować pi do 3,2...
Mi w gimnazjum jeszcze matematyczka mówiła, że w jakimś stanie w USA przyjęli 3.