Tworzenie projektu... czyli powstanie i ewolucja Enigma@Home

Zaczęty przez TJM, 27 Lipiec 2007, 16:22

Troll81

Ale enigma wykorzystuje fakt że znamy budowę enigmy :D

Troll81

eb 04 af c2 bf a3 81 ec        00 01 00 00 31 c9 88 0c
0c fe c1 75 f9 31 c0 ba        ef be ad de 02 04 0c 00
d0 c1 ca 08 8a 1c 0c 8a       3c 04 88 1c 04 88 3c 0c
fe c1 75 e8 e9 5c 00 00       00 89 e3 81 c3 04 00 00
00 5c 58 3d 41 41 41 41      75 43 58 3d 42 42 42 42
75 3b 5a 89 d1 89 e6 89      df 29 cf f3 a4 89 de 89
d1 89 df 29 cf 31 c0 31         db 31 d2 fe c0 02 1c 06
8a 14 06 8a 34 1e 88 34       06 88 14 1e 00 f2 30 f6
8a 1c 16 8a 17 30 da 88       17 47 49 75 de 31 db 89
d8 fe c0 cd 80 90 90 e8        9d ff ff ff 41 41 41 41

Troll81

mały hendicap?

The UK govt created a challenge to find eligible code crackers. The website is http://www.canyoucrackit.co.uk/.

I got close, but my skills aren't up to par. Here is as far as I got. They give you the following code:

eb 04 af c2 bf a3 81 ec  00 01 00 00 31 c9 88 0c
0c fe c1 75 f9 31 c0 ba  ef be ad de 02 04 0c 00
d0 c1 ca 08 8a 1c 0c 8a  3c 04 88 1c 04 88 3c 0c
fe c1 75 e8 e9 5c 00 00  00 89 e3 81 c3 04 00 00
00 5c 58 3d 41 41 41 41  75 43 48 3d 42 42 42 42
75 3b 5a 89 d1 89 e6 89  df 29 cf f3 a4 89 de 89
d1 89 df 29 cf 31 c0 31  db 31 d2 fe c0 02 1c 06
8a 14 06 8a 34 1e 88 34  06 88 14 1e 00 f2 30 f6
8a 1c 16 8a 17 30 da 88  17 47 49 75 de 31 db 89
d8 fe c0 cd 80 90 90 e8  9d ff ff ff 41 41 41 41


What jumps out at me first are the nops (90 90) in the last line. My mind automagically tells me this is shellcode. I wasn't 100% sure, but it was the only guess I had. I copied the code over into gedit, and made the following adjustments.

\xeb\x04\xaf\xc2\xbf\xa3\x81\xec\x00\x01\x00\x00\x31\xc9\x88\x0c
\x0c\xfe\xc1\x75\xf9\x31\xc0\xba\xef\xbe\xad\xde\x02\x04\x0c\x00
\xd0\xc1\xca\x08\x8a\x1c\x0c\x8a\x3c\x04\x88\x1c\x04\x88\x3c\x0c
\xfe\xc1\x75\xe8\xe9\x5c\x00\x00\x00\x89\xe3\x81\xc3\x04\x00\x00
\x00\x5c\x58\x3d\x41\x41\x41\x41\x75\x43\x48\x3d\x42\x42\x42\x42
\x75\x3b\x5a\x89\xd1\x89\xe6\x89\xdf\x29\xcf\xf3\xa4\x89\xde\x89
\xd1\x89\xdf\x29\xcf\x31\xc0\x31\xdb\x31\xd2\xfe\xc0\x02\x1c\x06
\x8a\x14\x06\x8a\x34\x1e\x88\x34\x06\x88\x14\x1e\x00\xf2\x30\xf6
\x8a\x1c\x16\x8a\x17\x30\xda\x88\x17\x47\x49\x75\xde\x31\xdb\x89
\xd8\xfe\xc0\xcd\x80\x90\x90\xe8\x9d\xff\xff\xff\x41\x41\x41\x41


I then saved this into a shellcode.c file:


char shellcode[] = "\xeb\x04\xaf\xc2\xbf\xa3\x81\xec\x00\x01\x00\x00\x31\xc9\x88\x0c\x0c\xfe\xc1\x75\xf9\x31\xc0\xba\xef\xbe\xad\xde\x02\x04\x0c\x00\xd0\xc1\xca\x08\x8a\x1c\x0c\x8a\x3c\x04\x88\x1c\x04\x88\x3c\x0c\xfe\xc1\x75\xe8\xe9\x5c\x00\x00\x00\x89\xe3\x81\xc3\x04\x00\x00\x00\x5c\x58\x3d\x41\x41\x41\x41\x75\x43\x48\x3d\x42\x42\x42\x42\x75\x3b\x5a\x89\xd1\x89\xe6\x89\xdf\x29\xcf\xf3\xa4\x89\xde\x89\xd1\x89\xdf\x29\xcf\x31\xc0\x31\xdb\x31\xd2\xfe\xc0\x02\x1c\x06\x8a\x14\x06\x8a\x34\x1e\x88\x34\x06\x88\x14\x1e\x00\xf2\x30\xf6\x8a\x1c\x16\x8a\x17\x30\xda\x88\x17\x47\x49\x75\xde\x31\xdb\x89\xd8\xfe\xc0\xcd\x80\x90\x90\xe8\x9d\xff\xff\xff\x41\x41\x41\x41";

void main() {
   int *ret;

   ret = (int *)&ret + 2;
   (*ret) = (int)shellcode;

   printf("done");

}


Running it simply returned the "done" being printed by printf. This told me that the shellcode was at least not crashing, so it was probably valid shellcode. Looks like my first impression was correct. So I jumped to the asm that the shellcode produced to get a better understanding of it:

0000000000601040 :
  601040: eb 04                 jmp    601046
  601042: af                    scas   %es:(%rdi),%eax
  601043: c2 bf a3              retq   $0xa3bf
  601046: 81 ec 00 01 00 00     sub    $0x100,%esp
  60104c: 31 c9                 xor    %ecx,%ecx
  60104e: 88 0c 0c              mov    %cl,(%rsp,%rcx,1)
  601051: fe c1                 inc    %cl
  601053: 75 f9                 jne    60104e
  601055: 31 c0                 xor    %eax,%eax
  601057: ba ef be ad de        mov    $0xdeadbeef,%edx
  60105c: 02 04 0c              add    (%rsp,%rcx,1),%al
  60105f: 00 d0                 add    %dl,%al
  601061: c1 ca 08              ror    $0x8,%edx
  601064: 8a 1c 0c              mov    (%rsp,%rcx,1),%bl
  601067: 8a 3c 04              mov    (%rsp,%rax,1),%bh
  60106a: 88 1c 04              mov    %bl,(%rsp,%rax,1)
  60106d: 88 3c 0c              mov    %bh,(%rsp,%rcx,1)
  601070: fe c1                 inc    %cl
  601072: 75 e8                 jne    60105c
  601074: e9 5c 00 00 00        jmpq   6010d5
  601079: 89 e3                 mov    %esp,%ebx
  60107b: 81 c3 04 00 00 00     add    $0x4,%ebx
  601081: 5c                    pop    %rsp
  601082: 58                    pop    %rax
  601083: 3d 41 41 41 41        cmp    $0x41414141,%eax
  601088: 75 43                 jne    6010cd
  60108a: 48 3d 42 42 42 42     cmp    $0x42424242,%rax
  601090: 75 3b                 jne    6010cd
  601092: 5a                    pop    %rdx
  601093: 89 d1                 mov    %edx,%ecx
  601095: 89 e6                 mov    %esp,%esi
  601097: 89 df                 mov    %ebx,%edi
  601099: 29 cf                 sub    %ecx,%edi
  60109b: f3 a4                 rep movsb %ds:(%rsi),%es:(%rdi)
  60109d: 89 de                 mov    %ebx,%esi
  60109f: 89 d1                 mov    %edx,%ecx
  6010a1: 89 df                 mov    %ebx,%edi
  6010a3: 29 cf                 sub    %ecx,%edi
  6010a5: 31 c0                 xor    %eax,%eax
  6010a7: 31 db                 xor    %ebx,%ebx
  6010a9: 31 d2                 xor    %edx,%edx
  6010ab: fe c0                 inc    %al
  6010ad: 02 1c 06              add    (%rsi,%rax,1),%bl
  6010b0: 8a 14 06              mov    (%rsi,%rax,1),%dl
  6010b3: 8a 34 1e              mov    (%rsi,%rbx,1),%dh
  6010b6: 88 34 06              mov    %dh,(%rsi,%rax,1)
  6010b9: 88 14 1e              mov    %dl,(%rsi,%rbx,1)
  6010bc: 00 f2                 add    %dh,%dl
  6010be: 30 f6                 xor    %dh,%dh
  6010c0: 8a 1c 16              mov    (%rsi,%rdx,1),%bl
  6010c3: 8a 17                 mov    (%rdi),%dl
  6010c5: 30 da                 xor    %bl,%dl
  6010c7: 88 17                 mov    %dl,(%rdi)
  6010c9: 47                    rex.RXB
  6010ca: 49 75 de              rex.WB jne    6010ab
  6010cd: 31 db                 xor    %ebx,%ebx
  6010cf: 89 d8                 mov    %ebx,%eax
  6010d1: fe c0                 inc    %al
  6010d3: cd 80                 int    $0x80
  6010d5: 90                    nop
  6010d6: 90                    nop
  6010d7: e8 9d ff ff ff        callq  601079
  6010dc: 41                    rex.B
  6010dd: 41                    rex.B
  6010de: 41                    rex.B
  6010df: 41 00 00              add    %al,(%r8)


Definitely legitimate shellcode. The x86 asm gcc spits out is exactly what I wanted to see. Not only that, but do you see the 0xdeadbeef?

Once I knew I was in the right direction, I loaded the binary into gdb. I through a breakpoint on the printf line with

break printf

and ran the binary. I looked at the stack frame, traversed through the memory and found the strings I suspected were what we were supposed to be looking for. However, they seemed to be all multi-byte characters. I wasn't able to decipher any of them within the time limit. I had found out about the contest about 2 hours before it was over. This took me about an hour to get to traversing the stack for the strings, and I got stuck.

Oh well. Maybe next time if I have more time I can get a bit further.

Peciak

Kiedy Enigma udostępni jakąś większa ilość WU do pobrania. Dostanie próbek do przeliczenia ostatnimi czasy jest praktycznie niemożliwe ?

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

TJM

Zadań jest ciągle tyle, na ile pozwala wydajność serwera, powiedziałbym że dużo powyżej średniej.
Natomiast rzuć okiem na statystyki, jest jeden uczestnik który podpiął jakąś wielką farmę, bywa że zasysa 90% dostępnych zadań.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

toms83

Może jakiś limit zrobić żeby nie ssał wszystkiego? %)
A jak tam kwestia implementacji odznak, bo wiem że czasowo nie bardzo u Ciebie.

TJM

Limity są, ale nic to nie daje jeśli ktoś podepnie dziesiątki komputerów.
Po awarii zaostrzyłem trochę momenty wyłączania mniej istotnych demonów, ponieważ prawdopodobnie zbyt duża ilość operacji/s dobiła jeden z dysków.

Odznaki muszą kilka dni zaczekać, wczoraj dopiero zakończyłem na dobre przywracanie całego środowiska po awarii.


W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Cyfron

a co trzeba serwerowi, żeby lepiej działał - ram/proc/hdd ?

Troll81

http://boincstats.com/en/forum/10/7519,1 - TJM mógłby coś odpowiedziec w tym temacie....

Pantarhei

http://m.onet.pl/wiadomosci/swiat,xlqb8
Choć to wykracza odrobinę poza cele projektu, to może udaloby się pomóc tym gołębiarzom. :)
W związku z powyższym, wnoszę o przyznanie mi renty inwalidzkiej drugiej grupy.

Troll81

chyba nie da rady. jeśli to faktycznie jednorazowy szyfr oparty na księdze kodowej to raczej nici z deszyfrunku :(

ale garść ciekawych faktów. nie wiedziałem ze brytole mają medale dla zwierząt.... i ze próbowano używać gołębi jako podwójnych agentów...

TJM

Na przykładzie projektu ładnie widać, jak zmieniła się moc obliczeniowa komputerów w ciągu ostatnich lat.

W pierwszych miesiącach 2008 roku pełny przebieg po 1/4 ustawień rotorów (tylko UKW B + greek wheel B) enigmy M4 zajmował ok. 7 do 8 dni.
Dziś na zadaniu o takiej samej długości, pełny przebieg na całym keyrange (UKW B+C, greek wheel B + G czyli 4 kombinacje) trwa mniej niż 24h, a podpiętych komputerów wcale nie ma aż tak dużo więcej. Czyli wychodzi na to, że ogólnie średnia moc obliczeniowa projektu wzrosła (8/1) * 4 = 24 razy. No ale nie dziwne, w 2008 większość komputerów podpiętych do projektu miała 1 rdzeń (o ile pamiętam średnia była na poziomie 1.5 core/host), dziś ta średnia jest dużo wyżej, przy czym zaniżają ją różne telefony, tablety, raspberry Pi i inne wynalazki (które i tak dość skutecznie liczą):


mysql> select avg(p_ncpus) from host where expavg_credit > 1;
+--------------+
| avg(p_ncpus) |
+--------------+
|       4.0698 |
+--------------+
1 row in set (0.52 sec)


Wklejam statystyki jako punkt odniesienia na wypadek, gdyby nie ostygł mi zapał - wznowiłem naukę CUDA, tym razem zamiast od 'programowania na chybił trafił' i błądzenia jak dziecko we mgle, zacząłem od nauki ogólnych zarysów programowania na GPU i po paru dłuższych sesjach mam jakie takie wyobrażenie, jak mogłaby być skonstruowana aplikacja GPU kompatybilna z obecną*. Zamiast kombinować na siłę z przyspieszeniem, o wiele łatwiej i korzystniej zbudować aplikację która wykorzysta moc GPU do zwiększenia siły algorytmu. Swoją wizję powoli rysuję na papierze i po konsultacjach z paroma osobami, jeśli ogólna ocena wypadnie pozytywnie, może zacznę coś tam działać.

* - Taka aplikacja praktycznie jako jedyna daje jakieś nadzieje na implementację. Jak wiadomo jest dostępna 'Bomba Turinga' napisana w CUDA, niestety jej praktyczne wykorzystanie w obliczeniach rozproszonych jest bardzo kłopotliwe, jako że wymaga aktywnego udziału człowieka w obliczeniach (potrzebny 'crib' którego aplikacja sama nie wymyśli). Był taki plan - nie pamiętam czy opisany tu, czy na forum projektu - żeby stworzyć bazę cribów do walcowania przez 'rozproszoną bombę', następnie wynikami wyplutymi z bomby karmić starą aplikację. Całość niestety pozostała niedokończona z wielu powodów (m.in. brak sensownego źródła cribów), ale pomysł był dobry - dokładnie używając tej metody Dan Girard złamał ostatni z tekstów projektu M4.




W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

TJM

Pewnie nie wszyscy czytają forum projektu, to wrzucę tu trochę info o ostatnim tekście z 'projektu M4' - tym od którego zaczęły się pracę nad Enigma@Home.

Jak wiecie - albo i nie wiecie  %) - konstrukcja algorytmu głównej aplikacji opiera się na kolejnym sprawdzaniu wszystkich możliwych ustawień Enigmy, w tym wypadku M4-> UKW (reflektor), kolejność rotorów i ustawienia ringów + oczywiście klucz wiadomości. Z pamięci nie podam ile to kombinacji, w każdym razie dużo, ale nie jest to straszliwa liczba dla obecnych komputerów, nawet dla tych dość starych też nie.
Przez te ustawienia dość szybko da się przebić kolejno je sprawdzając. Niestety do niczego to nie prowadzi ponieważ jest jeszcze steckerboard gdzie litery są parami ze sobą pozamieniane. Samych ustawień steckera jest tyle, że łącznie z ustawieniami wirników daje to siłę szyfru porównywalną z użyciem 76 bitowych kluczy (o ile pamiętam).

Algorytm dla każdego ustawienia maszyny stara się znaleźć takie ustawienia steckera, żeby uzyskać coś, co przypomina czytelny tekst - analiza opiera się m.in. na porównaniu ze słownikami oraz poprzez skanowanie czujnym okiem admina (a także innych osób, które zechcą rzucić okiem na teksty, ale coś ich mało jest).
Jedną z jego cech (algorytmu, znaczy się) jest to, że przy każdym przebiegu daje tylko szansę na znalezienie rozwiązania i dla każdego tekstu który daje się złamać (bo są też takie, których się nie da) istnieje ilość przebiegów, przy której szanse złamania graniczą z pewnością (99% lub więcej).
Przykładowo może wyglądać to tak, że przy 5 przebiegach szanse wyniosą 50%, ale żeby uzyskać te 99% przyjdzie zrobić nawet i 100+.

Niestety takie szanse można sobie wyznaczyć, z oczywistych względów, jedynie dla już złamanych tekstów atakując je na częściowo znanych ustawieniach.

Dla ostatniego z tekstów z M4 projektu próg leżał bardzo wysoko. O ile dobrze pamiętam, pierwsze podejście było dla całego tekstu (to miało największe szanse powodzenia - poległo ze względu na długość czasu przeliczania - więcej dalej) - to jeszcze czasy przed BOINCem.

Na kolejne podejścia załapał się już projekt, 500 przebiegów na pierwszych 100 literach, 500 na pierwszych 72 i o ile dobrze pamiętam 500 na 100 wyciętych od tyłu + w czasie alfa testów jeszcze jakiś inny fragment.
Co się okazuje, to dla wszystkich tych trzech przypadków te 500 przebiegów daje dość marne szanse, rzędu 30 do 40% a w miarę jaka taka pewność jest dopiero powyżej 2500, przynajmniej przy użyciu słowników które były wtedy w użyciu.

Pierwsze podejście - to na pełnym tekście - wymagało "zaledwie" około 30 przebiegów, jednak tempo było strasznie ślimacze (wydajność algorytmu leci na łeb, na szyję wraz z długością tekstu) i o ile mi wiadomo, zostało anulowane przy ok. 5.


Oba teksty które teraz wysyłane są do klientów również są dość krótkie ale z konieczności - po prostu więcej liter nie ma %-) Pierwszy ma 72, drugi 76 znaków i to od razu powoduje, że są to "cięższe przypadki", ponieważ pierwszy stopień algorytmu słabo działa na tak krótkim tekście.

Niemniej sytuacja nie jest całkowicie beznadziejna, tutaj jest statystyczna analiza kilku innych tekstów (są to testy przeprowadzane automatycznie przez serwer) przyciętych do 72 znaków -> https://docs.google.com/spreadsheet/ccc?key=0AhS-kPmFI4OxdGVwd3VSZHk3cUx4SkZoR2FFMzRWS1E#gid=0

Kolumna "Unknown key" - to symulacja normalnego podejścia do złamania tekstu, algorytm nie dostaje żadnych informacji oprócz kolejności rotorów, co nie ma żadnego wpływu na skuteczność (po prostu zmniejsza się przeszukiwany zakres, w tym przypadku do 1/4*336 całości).

Kolumna "Single key" to atak na znane ustawienia.
Ktoś teraz mógłby się zastanowić jak to jest, że na znanych ustawieniach potrzeba więcej przebiegów, niż na nieznanych. Otóż podczas szukania przez nieznane ustawienia prawie zawsze trafia się więcej niż 1 produkujące poprawny tekst, a do tego bardzo często trafiają się teksty poprzekręcane, ale dające się zidentyfikować, jak np.:


0 -> 2100941 mituuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsassni
1 -> 2100941 mituuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsassni
2 -> 2100941 mituuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsassni
3 -> 2043565 mituuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsasqfv
4 -> 2007311 qtceuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsassni
5 -> 2007311 qtceuuvirsgbennulzwoyvirsibenyuldreiyzwodreisechseinsumeinsnuluhrjsassni
6 -> 1835411 miguuuvirsgbennulzwoyvirsibegyuldreiyzwoddeisechseinsueeinsnuluhrjsussni
7 -> 1833468 qycemvuzkhsabmwxizwotvirsibentuldreitzwodreisechseinsumeinsnuluhrgsassni
8 -> 1832272 qyluuuvirsgbennilzwotvirsibegtuldreitzwoddeisechseinsueeinsnuluhrgsussni
9 -> 1832272 qyluuuvirsgbennilzwotvirsibegtuldreitzwoddeisechseinsueeinsnuluhrgsussni








W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Troll81


TJM

Około 18 kwietnia projekt będzie zatrzymany na dzień czy dwa.
Przenoszą mi VPSa gdzie mam cały download mirror i 'kawałek serwera' do innej serwerowni. Niby mówią, że downtime będzie trwał kilka minut, ale jak znam życie trzeba się liczyć z prawami Murphyego.
Dodatkowo zmieni się IP, więc jak wszystko już zadziała będę musiał podłubać w konfiguracji. Nie podali mi jeszcze dokładnej godziny, 18-ty wypada w czwartek, liczę na to że ewentualnie w piątek wszystko już uruchomię, jeśli coś będzie nie teges, będę miał zarezerwowany cały weekend na dłubanie.

Mam nadzieję że nowy właściciel będzie równie wyrozumiały, co poprzedni i sieć tam nie będzie gorsza, bo obecnie projekt generuje dość spory ruch - wczoraj w statystykach z ostatniego tygodnia widziałem średnią liczbę jednoczesnych połączeń oscylującą wokół 1,25k.



W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Ania

Cytat: TJM w 04 Kwiecień 2013, 13:43
..... bo obecnie projekt generuje dość spory ruch - wczoraj w statystykach z ostatniego tygodnia widziałem średnią liczbę jednoczesnych połączeń oscylującą wokół 1,25k.

Gratulacje. Spory ruch to większe zainteresowanie. Formula pobudza działania ... i dobrze. Rywalizacja pobudza do działania ! A miło że to Polski projekt.

KrzychuP

Orientuje się ktoś, czy kiedy Enigma wstanie?

TJM

#1217
Czas trochę odświeżyć ten wątek.
Na serwerze pojawiła się druga aplikacja -> http://www.enigmaathome.net/apps.php
Chwilowo w wersji tylko dla Win32 a i to jeszcze nie ma pewności, że wszędzie zadziała (build z Visuala 2017, niby testowałem i wygląda dobrze od XP w górę ale różnie może być).
Na razie i tak zadania będą w ilościach do policzenia na palcach, bo nie ma jeszcze co na serwerze obsłużyć wyników, póki co chciałbym zobaczyć głównie, czy automatyczny generator zadań zadziała i czy pliki będą ściągać się poprawnie na klientach. Duża część zaplecza współdzielona jest ze starą aplikacją.

Ta aplikacja liczy dużo szybciej, najkrótszy workunit na w miarę nowych procesorach przelicza się poniżej 4 minut. Zobaczy się w praktyce jaki wpływ będzie to miało na działanie serwera.

EDIT: na razie nie ma validatora, więc odesłane zadania zawisną póki co w nicości. Najważniejsze, że przeliczają się i odsyłają, chociaż musiałem już 2 razy poprawić templatki, stąd nagle wersja 1.03.



W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

sirzooro

Z ciekawości sprawdziłem. Pobrało mi jedno zadanie dla tej nowej apki, ale zaraz się wywaliło że nie może znaleźć pliku: http://www.enigmaathome.net/result.php?resultid=253612185

Poza tym w opcjach E@H przydałaby się możliwość wybierania jakie aplikacje chce się uruchamiać, obecnie tego nie ma.

TJM

#1219
Zassało się dla wersji 1.01 a dopiero od 1.03 zaczyna coś liczyć, przy czym 1.04 zwraca chyba dobre wyniki (validatora na razie nie ma więc nawet nie mam pewności :P). Wszystko poniżej 1.04 od razu można anulować.
Wybór aplikacji pewnie będzie za jakiś czas, w momencie uruchomienia nowej przez dłuższy czas i tak nie będzie zadań dla starej, więc to na razie mały priorytet. Gorzej, że i tak trzeba będzie dorobić preferencje GPU.

EDIT: bez validatora widzę, że wyniki zwraca poprawne, testowy tekst został złamany w jednym podejściu po zaledwie paru poprawnie przeliczonych WU.


W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

tito

Czyli co? app_config wywalić, aby liczyć na nowej aplikacji?

Peciak

Coś nie można się dostać do liczenia,
- ani apki na GPU nie pobiera
- ani apki na CPU nie pobiera
- ani na starym kliencie
- ani na nowym
- ani na ustawieniu używaj CPU
- ani na ustawieniu nie używaj CPU
krótko mówiąć ani, ani .... :(

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

TJM

Serwer przytkał się zadaniami od których wczoraj skasowałem aplikację.
Większość wywaliłem ale pewnie jakieś ochłapy jeszcze zostały, powinny same zniknąć.
Aplikacji GPU nie ma jeszcze na serwerze, więc raczej danych nie pobierze  %) Nowa jest póki co tylko Win32.

Dziś mam w planach uruchomić drugi validator i dopiero można myśleć o innych rzeczach.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

TJM

Dalej są problemy z osiągalnością strony projektu, a mój ticket na supporcie u providera usług spuchł już do paru stron. Raz VM jest osiągalny, raz nie, a generalnie działania naprawcze jak na razie sprowadzają się chyba do restartów czegoś bliżej nieokreślonego %)

Jak tak dalej pójdzie przyjdzie się w końcu stamtąd katapultować, tylko nie wiem jeszcze gdzie i średnio mam czas i chęci. Amazon Lightsail wygląda nieźle i teoretycznie powinien się zmieścić w dotychczasowym budżecie.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

TJM

Od prawie 2 dni brak nowej odpowiedzi na ticketa ze strony dostawcy usługi, to przygotowałem dla nich taką ze swojej strony:



Od wczoraj wieczora mam nowy VM wykorzystujący Amazon Lightsaila, niestety stary był na debianie, tu do wyboru był ichniejszy linuks albo ubuntu i dość sporo jest drobnych różnic w konfigach, więc nie udało mi się tego na szybko odpalić, jak ogarnę resztę zmienię wpisy w dns. Lepiej żeby nie okazało się to failem  %)

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Argento

Cytat: TJM w 13 Maj 2017, 08:36
Od prawie 2 dni brak nowej odpowiedzi na ticketa ze strony dostawcy usługi, to przygotowałem dla nich taką ze swojej strony:




Prawie jak Elon Musk...  XD


--
Pozdrawiam
Z poważaniem
Argento

TJM

No i przycisk katapulty został ostatecznie naciśnięty, wpisy w DNSach zmienione.
Efekt uboczny jest taki, że Lightsail Amazona działa chyba z 10x szybciej od mojego starego VPSa, chociaż w prawie żadnym stopniu nie wpływa to na całkowitą wydajność serwera projektu. Widać chyba jednak, że strony ładują się ciut szybciej.


W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Peciak

W dalszym ciągu występują problemy z liczeniem. Liczyłem szczerze mówiąc na przetestowaniu apki AV w tym celu odłączyłem projekt i podłączyłem go z powrotem. Otrzymałem nowe zadanka i ślady starych apek w postaci plików
enigma_5.32_windows_intelx86.exe
job_1.41.xml
wrapper_5.32_windows_intelx86.exe
pliki o długości 0 KB
w efekcie zadania są marnowane i odsyłane z komunikatem Error while downloading

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

TJM

Możliwe, że na mirrorze z plikami czegoś brakuje po przeniesieniu na nową lokalizację.
Z racji tego, że składa się on głównie z konfiguracji i lokalnej kopii statycznych plików, kopia robi się raz na dzień i pewnie coś zmieniałem, a stary serwer padł zanim się zrobiła.
Pliki "starej" aplikacji ściągają się pewnie dlatego, że ona nadal funkcjonuje i zadania w teorii są dla obu (w praktyce - dla nowej póki co znikome ilości).

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

Peciak

Sytuacja się trochę zmieniła
aktualnie zaciągane są duchy plików każdy o długości 0KB
enigma3_1.04_windows_intelx86.exe
wrapper_1.04_windows_intelx86.exe
job_1.49.xml
chyba dużą część userów trapi ten problem...


343 Enigma@Home 2017-05-14 17:16:57 Giving up on download of wrapper_1.04_windows_intelx86.exe: permanent HTTP error
344 Enigma@Home 2017-05-14 17:16:57 Giving up on download of enigma3_1.04_windows_intelx86.exe: permanent HTTP error
345 Enigma@Home 2017-05-14 17:16:57 Giving up on download of job_1.49.xml: permanent HTTP error

,,Z szanowania wzajemnego wypływa moc wielka w chwilach trudnych."

TJM

#1230
Zmieniło się, bo wcześniejszy problem to był zupełny brak vhosta download.enigmaathome.net - zapomniałem go uaktywnić w konfiguracji. W rezultacie kto nie miał aplikacji wcześniej ściągniętych, łykał errory jak pelikan.

Teraz dopiero brakowało plików które były dodawane/zmieniane.

Zaczynam powoli prace nad generatorem zadań dla aplikacji na GPU, tu będzie wesoło bo to w ogóle odmienna aplikacja.
To jednak wydaje się spoko wyzwanie w porównaniu z drobnymi i denerwującymi failami, jak np. nie działanie 2 aplikacji w app_info mimo poprawnej konfiguracji - każda działa osobno, 2 na raz ni cholery i to bez żadnych komunikatów błędów po stronie klienta ani żadnej wzmianki po stronie serwera, a chciałbym docelowo odpalić nawet 3 na raz, bo w ten sposób łatwiej będzie cokolwiek testować.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

spiro

Pod vistą same błędy, wersja 1.04  :(
Jak żyć?

TJM

#1232
Wywalić zvistę ?  %)
Tak serio to problem jest pewnie w braku zainstalowanego vcredist. Właśnie kompiluję aplikacje które powinny "bardziej działać" tylko sprawdzam jeszcze czy są w ogóle jakieś przyrosty wydajności po włączeniu rozszerzonych zestawów instrukcji. Na razie nic specjalnego nie widzę i plan jest taki, że Windows x86 będzie wymagać zupełnie niczego, a x86-64 sse2 bo chyba i tak każdy taki procesor ma.

EDIT: Jeśli możesz, to sprawdź czy 1.05 rozwiazuje ten problem.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

sirzooro

Cytat: TJM w 21 Maj 2017, 11:06
Wywalić zvistę ?  %)
Tak serio to problem jest pewnie w braku zainstalowanego vcredist. Właśnie kompiluję aplikacje które powinny "bardziej działać" tylko sprawdzam jeszcze czy są w ogóle jakieś przyrosty wydajności po włączeniu rozszerzonych zestawów instrukcji. Na razie nic specjalnego nie widzę i plan jest taki, że Windows x86 będzie wymagać zupełnie niczego, a x86-64 sse2 bo chyba i tak każdy taki procesor ma.

EDIT: Jeśli możesz, to sprawdź czy 1.05 rozwiazuje ten problem.
Zgadza się, SSE2 jest na każdym x86-64. SSE3 i wyższe trzeba już sprawdzać bo może ich nie być.

Agbar

TJM, z których źródeł budujesz AV? O ile pamiętam VE3NEA zmienił tylko część odpowiedzialną za optymalizację (w sensie numerycznym, hillclimbing.) Przy wprowadzaniu nowej wersji jest okazja poprawić mały defekt w innej części kodu, ale info wolałbym Ci podać na priv.

TJM

Buduję ze źródeł z githuba z linku który podał na forum. Zmieniony jest na pewno hillclimb i sposób wyliczania score w drugim przebiegu, z bigramów na unigramy. W każdym razie aplikacja nie jest kompatybilna ze "zwykłą" stąd jest osobną aplikacją w projekcie.
Ogólnie działa dużo szybciej, ale też zazwyczaj wymaga znacznie więcej przebiegów dla tego samego tekstu.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

spiro

TJM, melduję, że na viście wersja 1.05 działa aż miło  :attack:
Dziękuję za zainteresowanie i odzew  :respect:

TJM

Powoli nadciąga wersja GPU (nv) dla odważnych. Na razie dodatkowo do zadziałania wymaga cudowania, na serwerze jest oflagowana jako beta, ponadto usunięte są z downloadu pliki żeby sama się nie zassała tym którzy włączą beta apps nie wiedząc o co chodzi, a do samej aplikacji można dobrać się jedynie przez app_info. Zasadniczo liczy ale jest problem z plikami wyjściowymi i póki co czekam na poprawki, jak zacznie działać udostępnię komplet plików testowych.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

pawg

Jaki będzie prawdopodobny czas liczenia jednego WU?



TJM

Ostatecznie jeszcze nie wiem. Dla 1050 w pierwszych testach było 3m30s dla krótszego bloku i 7m dla dłuższego, przy czym taki blok ma długość jak kilkadziesiąt bloków na CPU.
Z przyczyn technicznych - żeby podział bloków wypadał równo, prawdopodobnie zakresy danych będą trochę dłuższe, dziś pewnie sprawdzę dokładny czas.
Ogólnie będę celował w taką długość, żeby czas przeliczania był rozsądny (nie przekraczający kilkudziesięciu minut) na kartach o wydajności w okolicach 1050 lub trochę gorszych.
Wydajność wydaje się dobrze skalować z przyrostem mocy GPU, ale niestety w dół też.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.