No więc tak. Pierwsza sprawa to trochę lipa - żeby RAMdisk miał sens pod BOINCa trzeba ustawić min z 1GB, a to oznacza że rozstajemy się z 1GB RAMu. Użyłem freewarowego AR_RAMdiska, który instaluje w systemie sterownik ramdrive (jeden plik .sys) http://www.arsoft-online.com/
Po instalacji ustawiamy parametry (lepiej zaznaczyć emulację dysku lokalnego, inaczej niektóre progsy go nie widzą), reboot i pojawia się nowa literka dysku.
Wystarczy skopiować tam cały katalog BOINC i w rejestrze zmienić ścieżki 'instalacji' i 'data' i tyle.
Co ciekawe, sam boinc i manager hulają szybciej po wrzuceniu na RAMdisk, pewnie to przez ciągłe zapisywanie i odczytywanie z plików state - zwłaszcza rzuca się w oczy przy dużej ilości zadań.
FreeHAL - po zmianie ścieżki TEMP na RAMdisk szybkościowo nic się nie zmieniło, ale odpada pobrzękiwanie dyskiem przy pracy z plikami tymczasowymi (FreeHAL w katalogu temp tworzy cały katalog ze swoimi plikami).
Almere - nie mam niestety żadnego porównania, bo projekt jakiś dziwny czas procesora pokazuje na stronie, zupełnie z kosmosu, ale zadania przeliczają się sporo szybciej niż z HDD i do tego nie ma mielenia dyskiem.
Jako że rozstawanie się z 1GB RAMu trochę dla mnie nie wchodzi w grę, postanowiłem przetestować też szybkość innych nośników. W tym celu napisałem skrypt który tworzy katalog zawierający 10,000 plików o znanej zawartości a następnie:
1) odczytuje zawartość wszystkich plików po kolei
2) dopisuje w każdym pliku na końcu ciąg znaków
3) przeszukuje pliki szukając w nich jakiegoś ciągu
4) odczytuje co drugi plik i tworzy nowy z jego zawartością
5) kasuje nowo stworzone pliki
6) kasuje wszystkie pliki
Testy - punkty to przeliczenie wynikające z proporcji czasu wykonywania, relatywne do szybkości RAMdisku (1000 punktów oznacza 10 razy wolniej od RAMdisku) - RAMdisk jeszcze zapewne by dalej odsadził wszystko inne, ale skrypty AutoIta są interpretowane i pewnie sam skrypt ogranicza prędkość operacji na RAMdisku, a ponadto prędkość jest ograniczana przez sam system plików.
RAMdisk - 10000
Dysk SATA2 ~ 3230
Pendrive USB 2.0 (reklamowany jako bardzo szybki) ~ 650
Pendrive USB 1.1 ~ 280
MP3 Player USB 2.0 - 45 (traci dużo na zapisie, chyba skanuje wszystkie wrzucane pliki)
Przenośny HDD na USB 2.0 ~ 1760 - niezłe zaskoczenie, ale w sumie liniowy transfer też jest duży
karta pamięci CF + interfejs IDE - duży rozrzut między 7000 a 8000, chyba dlatego że tu bardzo ładnie działa keszowanie i opóźniony zapis.
stary flashdrive 128MB IDE ~ 1200 - szału nie ma, ten dysk nawet DMA nie obsługuje a mimo to jest dość szybki.
Dysk sieciowy zmapowany z linuksa (po drugiej stronie macierz RAID) - duży rozrzut między 1300 a 2800 - nie wiem z czego wynika.
Wniosek z tego taki: idę zaraz do sklepu po dużą kartę CF i na niej będzie siedział BOINC. Liniowy transfer z takiej karty nie jest duży, a operacje na małych plikach są szybsze - pewnie dlatego że czas dostępu jest bardzo mały. Karta co prawda ma ograniczoną żywotność (jak większość flashowych urządzeń) - zobaczymy na ile starczy.
EDIT: kurcze zamiast się bawić w skrypty mogłem użyć Sisoft Sandry - ma testy dysków.