Aktualności:

Nowy polski projekt BOINC - Universe@Home

Menu główne

optymalki, boinc managerki itp

Zaczęty przez Pigu, 18 Styczeń 2009, 13:04

Pigu

tak sobie pomyślałem - całkiem nieźle radzę sobie w pascalu, c również liznąłem więc nie powinno być problemów z przestawieniem się tak więc... w co muszę się zaopatrzyć by pod win pobawić się własnymi kompilacjami managera i aplikacji liczących?

mindc

Pod windows?
Potrzebujesz co najmniej Visual Studio 2003, źródełka, trochę cierpliwości i już  ;D




Pigu

Borland C++ Builder nie styknie? (moje przywiązanie do delphi :-[ )

sesef

#3
Cytat: Pigu w 18 Styczeń 2009, 13:11
Borland C++ Builder nie styknie? (moje przywiązanie do delphi :-[ )

Styknie, ale jakby to powiedzieć klient ma już zrobiony projekt pod VS 2005 i ten kompilator VS jednak lepiej kompiluje, a pod borlandem raz ze miałbyś trochę zabawy ze zrobieniem projektu to nie wiem jak jest z llinkowaniem bibliotek MS-a nie zdziwiłbym się jakbyś musiał sobie poustawiać ścieżki do SDK (VS ma już to domyślnie zrobione)

Pigu

ok - przekonałeś mnie  :P

co to "kompilator intela" - pojawia się takie słowo klucz co jakiś czas

sesef

http://www.intel.com/cd/software/products/asmo-na/eng/284527.htm

mindc

Cytat: Pigu w 18 Styczeń 2009, 13:25
co to "kompilator intela" - pojawia się takie słowo klucz co jakiś czas

służę pomocą aby to odpalić i spiąć statycznie  ;D


Pigu

ten intel to coś co się "dogrywa" do vs?

sesef

Cytat: Pigu w 18 Styczeń 2009, 14:40
ten intel to coś co się "dogrywa" do vs?

Ta integruje się z VS tak że projekt VS można kompilować bezpośrednio z VS a nie z linii komend kompilatora Intela, tylko trzeba uważać którą wersje się ściąga.

Intel 11 integruje się z VS 2005 i 2008
Intel 10 tylko z VS 2005

Do tego Intel 11 jest dość kontrowersyjny bo np mi na win xp 32 bit się sypia się aplikacje nim skompilowane, a teraz kompilowałem Intelem 11 ale wersja 64 bit na Win 7 i jak widać AP26 się nie sypie

mindc

Cytat: sesef w 18 Styczeń 2009, 16:02
Do tego Intel 11 jest dość kontrowersyjny bo np mi na win xp 32 bit się sypia się aplikacje nim skompilowane, a teraz kompilowałem Intelem 11 ale wersja 64 bit na Win 7 i jak widać AP26 się nie sypie

potwierdzam identyczne zachowanie pod linuxem
odradzam 11, polecam 10  ;D


Pigu

a więc VS 2005 wgrywać? nie wcześniejszy, nie późniejszy?

sesef

Cytat: Pigu w 18 Styczeń 2009, 16:54
a więc VS 2005 wgrywać? nie wcześniejszy, nie późniejszy?

2005 będzie chyba najlepszy najłatwiej jest na nim skompilować boinca (projekt jest zrobiony pod tą wersje) do tego Intel na nim normalnie działał (znaczy u mnie mniej się sypało niż na Intelu 11) Między 2005 a 2008 przy C++ nie ma chyba nawet różnic co do kompilatora i środowiska. Konkretne różnice są dopiero jak się programuje w C# w tym przypadku 2008 będzie lepsze. Jednak ty chcesz bawić się boincem i optymalkami czyli C/C++ więc bierz 2005.

Pigu

starczy express edition czy wgrać pełnego (mam nawet z licencją, ale po co walić z armaty do komara) ???

mindc

Cytat: Pigu w 18 Styczeń 2009, 18:11
starczy express edition czy wgrać pełnego (mam nawet z licencją, ale po co walić z armaty do komara) ???

Intel nie integruje się z Expressem, wtedy pozostaje zabawa z linią poleceń


Pigu


AiDec

Podczepie sie pod temat `optymalki, boinc managerki itp` i zapytam:

A moze ktos zna sposob, jak zmusic BM do czestego requestowania?



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

TJM

#16
Napisać sobie skrypt, dla linuksa:


while :; do
~/BOINC/boinc_cmd --project http://www.enigmaathome.net update
~/BOINC/boinc_cmd --project http://www.rechenkraft.net/yoyo update
sleep 60
done


dla windy również da się coś podobnego zrobić


:a
cd f:/BOINC
boinccmd.exe --project http://www.rechenkraft.net/yoyo update
boinccmd.exe --project http://www.enigmaathome.net update
ping 127.0.0.1 -n 60
goto a


pewnie błędy są, ale ogólny pomysł właśnie jest taki i to na pewno działa

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

3Rni

#17
dla win dziala tylko ten ping z -t60 "mało elegancki" niczym atak ddos na localhosta :D

a bez żartów, t60 jaki to czas pingowania?


TJM

Powinno być -n 60, rypło mi się ze starym httpingiem którego używam częściej niż windowsowego zwykłego pinga %-)
Alternatywa dla tego sposobu to zassanie programiku sleep.com - do znalezienia w necie, działa tak samo jak linuksowy sleep.

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

mindc

Cytat: AiDec w 19 Styczeń 2009, 16:18
Podczepie sie pod temat `optymalki, boinc managerki itp` i zapytam:

A moze ktos zna sposob, jak zmusic BM do czestego requestowania?

przytoczę fragment rozmowy z NetMonitoring, którą jakiś czas temu przeprowadziłem

Cytat
ok, spakowałem wszystko co potrzebne
ściągnij stąd: http://mindc.net/files/cronwin.zip
jak rozpakujesz, będziesz miał tam 3 pliki:

crons.exe
crontab
boinc-update.cmd

skopiuj configa, czyli 'crontab' do katalogu windows\system32
jak masz jakąś maszynę 64bit, to wrzuć do katalogu windows\syswow64
powinieneś go przeedytować, jeśli skrypt wrzucisz w jakieś inne miejsce niż C:
tam są wpisy aby aktualizować co 10 minut

trzeba zainstalować crona jako usługę, więc
crons.exe /install
crons.exe /start
i teraz bedzie się uruchamiał po każdym starcie systemu

plik boinc-update.cmd, możesz sobie edytować do woli,
w zależności jakie tam projekty masz jeszcze na kompach
i gdzie masz klienta boinc

i to chyba wszystko
jak coś będzie szło nie tak, podejrzyj plik cron.log, znajdziesz go tam gdzie plik 'crontab'


można jeszcze zamiast 'update', po prostu robić
boinccmd.exe --network_available
ale update jest 'mocniejszy'

no a cron się zawsze przyda pod windowsem ;D




pod linuxem używam coś takiego


#!/bin/bash

BOINCDIR='/sciezka/do/BOINC'
cd ${BOINCDIR}
for PROJECT in `command ls -1 ${BOINCDIR}/projects | tr _ /`;do
    ./boinc_cmd --project http://${PROJECT} update
done


nie muszę wtedy pamiętać, czy dany projekt jest dopisany czy nie do skryptu



TJM

Ten ostatni sposób tylko pozornie jest dobry. Jeśli masz podłączone np. 10-15 projektów i w jednym chociażby akurat scheduler padnie, taki pojedyńczy update może się zaciąć nawet na kilka minut. Co gorsza, wywołanie update na niedziałającym projekcie automatycznie spowoduje wpadnięcie tego update do kolejki i sam BOINC będzie próbował co chwilę, więc i kolejne updejty innych projektów będą opóźnione.

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

mindc

nie pomyślałem o tym...
ale nie zauważyłem tego problemu z kolejkowaniem
no i na kompach mam góra po 4 projekty, może dlatego...

chociaż z drugiej strony, ten 'update' niczym nie różni się od Twojego

a teraz hipotetycznie:
jak scheduler padnie w jakimś projekcie, to czas w jakim (przy Twoim skrypcie):
sprawdzę na jakich kompach liczy się dany projekt, a nie mam tych kompów kilku czy kilkunastu,
później przygotował odpowiednią aktualizację, aby omijać na danych kompach 'update' danego projektu
później rozesłał to na te kompy...
...to scheduler prawdopodobnie już dawno wróci do żywych
no a jak już scheduler wróci, to bym musiał powtarzać całą procedurę od nowa

dlatego poszedłem na skróty  ;D


Pigu

vs 2005 już wgrany, jaki enviroment polecacie?

ZdrowaMarchewa

Cytat: Pigu w 22 Styczeń 2009, 23:33
vs 2005 już wgrany, jaki enviroment polecacie?
Tylko czsami nie "baw" się C#, to nie ma sensu przy tego typu aplikacjach  XD

sesef

Cytat: ZdrowaMarchewa w 23 Styczeń 2009, 08:32
Cytat: Pigu w 22 Styczeń 2009, 23:33
vs 2005 już wgrany, jaki enviroment polecacie?
Tylko czsami nie "baw" się C#, to nie ma sensu przy tego typu aplikacjach  XD

No to chyba Ciebie zdziwię, pierwiastek kwadratowy (sqrt) w NET Framework jest liczony szybciej niż jego odpowiednik z C/C++ z biblioteki math

Pigu


sesef


Pigu

czy to ostatni relek?
http://milkyway.cs.rpi.edu/milkyway/download/code_release/

sesef

#28
tak

Jak chcesz kompilować milky to musisz się zainteresować również skompilowaniem API.

Małe info
- Jak nie masz to ściągasz TurtoiseSVN chyba, że korzystasz z innego klienta
- Ściągasz ten kodzik może być również inna wersja to już zależy od Ciebie http://boinc.berkeley.edu/svn/tags/boinc_core_release_6_5_0/
- W katalogu Win_Build odpalasz boinc.sln i kompilujesz libboinc_staticcrt i libboincapi_staticcrt
- te liby będą potrzebne do skompilowania Milky do tego jeszcze kilka plików nagłówkowych z katalogów api/ i lib/

Pigu

w katalogu milki pojawił się relek 14 - teraz nad nim powinienem pracować?

Cytat- Jak nie masz to ściągasz TurtoiseSVN chyba, że korzystasz z innego klienta
- Ściągasz ten kodzik może być również inna wersja to już zależy od Ciebie http://boinc.berkeley.edu/svn/tags/boinc_core_release_6_5_0/
- W katalogu Win_Build odpalasz boinc.sln i kompilujesz libboinc_staticcrt i libboincapi_staticcrt
to się powiodło bezproblemowo 8)

Cytat- te liby będą potrzebne do skompilowania Milky do tego jeszcze kilka plików nagłówkowych z katalogów api/ i lib/
rozumiem kompilator mi kwiknie o które konkretnie chodzi podczas kompilacji?

no i mam dylemat - o ile otworzenie sln'a i kompilacja to pikuś, to w przypadku milki nie wiem nawet co otworzyć vs'em :-[

sesef

Cytat: Pigu w 25 Styczeń 2009, 00:08
no i mam dylemat - o ile otworzenie sln'a i kompilacja to pikuś, to w przypadku milki nie wiem nawet co otworzyć vs'em :-[

Bo trzeba projekt założyć

- Otwierasz VS
- File->New->Project
- z listy wybierasz 'Other Languages', 'Visual C++' 'Win32' i tam 'Win32 Console ...'
- na dole podajesz nazwę projektu i miejsce jego zapisania
- teraz powinien się otworzyć kreatorek dajesz tam next aż dojdziesz do momentu z checkboxami i tam zaznaczasz empty project.
- Teraz po prawo masz 'explorer solution' powinny być tam puste katalogi Source/Resource/Header files dajesz na to prawym i 'Add' -> 'Existing item..' i dodajesz wszyskie pliki milki *.h *.c możesz sobie *.c wrzucić do folderu 'Source files' a *.h do 'header files' nie ma to znaczenie po za estetyką przydatna przy dużych projektach żeby się nie pogubić.
- Teraz pod paskiem menu powinny być 2 listy rozsuwane jedna z typem buildu (Release/Debug) i druga z rodzajem platformy ustawiasz na Release i Win32
- Teraz jak masz już dodane pliczki to dajesz 'Project' -> 'Properties' i ustawiasz

lista C/C++:
*General
- 'Additional Include Directories' tutaj dodajesz ścieżki do katalogów /lib i /api o których wcześniej pisałem sam już sobie dobierze których plików mu brakuje
* preprocessor:
- 'Preprocessor definitions' ustawiasz na "WIN32;NDEBUG;_CONSOLE;_WIN32;GMLE_BOINC" albo krócej dodajesz do listy "GMLE_BOINC"
*code generation
- 'Runtime Library' możesz ustawić Multi-threaded to nie będzie wymagało instalacji redistributów tylko wielkość exe będzie większa
*Advenced:
- Undefine Preprocessor Definitions dodaj 'UNICODE' (u mnie pluło błędami o niektóre funkcje unicode to w ten sposób się tego pozbyłem)
*Command Line
dopisz "/TP" (również u mnie pluło błędami be pomimo ustawienia w Advenced żeby używało /TP to i tak na siłę chciało /TC)

Teraz jeszcze Linker
*Input
- 'Additional Dependencies' i dodajesz "libboinc_staticcrt.lib libboincapi_staticcrt.lib"

I ostatni punkt te liby, które skompilowałeś czyli libboinc_staticcrt.lib i libboincapi_staticcrt.lib kopjuesz z miejsca gdzie się skompilowały do katalogu gdzie zapisałeś projekt dokładnie tam gdzie masz plik TWOJA_NAZWA_PROJEKTU.vcproj

To by było na razie na tyle z tego co pamiętam to jest niezbędne do skompilowania podstawowego Milky. Jak będzie sypać błędami to pisz.