Strona 1 z 1
Koligacja, czyli FS i dwa rdzenie...
: sob 15 gru, 2007 18:34
autor: RzEmYk
Z cyklu wesołej niedzielnej szkółki pilotażu... żartowałem, nie ta szkółka.

Dziś będzie cykl pogodna sobotnia szkółka majsterkowicza część druga, czyli jak odpowiednio wykorzystać drugi rdzeń w Athlon64 X2, lub Core2Duo. Oczywiście poradnik sprawdza się również w przypadku procesorów czterordzeniowych.
Na początku był jeden rdzeń i każdy się cieszył. Jednak z czasem nastała era dwu- i czterordzeniowych procesorów. Za zmianami technicznymi jednak nie nadążył nam FS, który cały czas (FSX dopiero od wersji SP1 korzysta z większej ilości rdzeni) korzysta tylko z jednego rdzenia.
Skoro nie da się zmusić FSa do korzystania z dwóch rdzeni, należy jak najwięcej programów przyrzucić na drugi.
Wydawać by się mogło, że najprościej jest przerzucić proces w
Menedżerze zadań jak na poniższym obrazku:

Rozwiązanie takie ma jednak jedną zasadniczą wadę - za każdym razem, gdy uruchamiamy dany program musimy ponawaiać ustawianie koligacji.
Rozwiązaniem tego jest mały, darmowy programik:
CPU Control.
Po ściągnięciu (636KB), zainstalowaniu i uruchomieniu programu oczom naszym ukazuje się główne (i niemal jedyne) okienko programu:

Obsługa programu jest intuicyjna, jak ktoś ma problemy, to polecam zmianę użytkownika.
Przejdę od razu do sedna. Nas interesuję opcja
Manual, oraz dowolny pusty profil.
W spisie klikamy prawym przyciskiem myszy na interesującym nas procesie (tutaj przykładowo CCC.exe). Wybieramy opcję
Add to CPU list >
1 CPU >
2, dzięki czemu zostanie on zapamiętany w profilu jako proces, który należy wykonywać na drugim rdzeniu.
Jak widać na przykładzie, w profilu 1 na liście znajdują się już ActiveSky oraz ActiveSky Graphics, należy tam dodać pozostałe programy uruchamiane razem z FSem, jak np. elementy FSCopilot i FSInn, czy ServInfo...
Jeszcze nie koniec

Należy jeszcze kliknąć w
Options:

Należy zaznaczyć opcję
Autostart with Windows, oraz
Start minimalized, dzięki czemu przy każdym włączeniu Okienek program uruchomi się do ikonki w pasku.
Co ważniejsze, dzięki temu wystarczy raz ustawić sobie profil i od tej pory
CPU Control będzie się troszczył o odpowiednie przydzielanie procesów.
W przypadku procesorów czterordzeniowych należy oczywiście zaznaczyć opcję
Quad core, oraz procesy można przydzielić nie tylko do drugiego rdzenia.
Uaktualnienie:
Jak słusznie
noker zwrócił uwagę, lepiej jest przerzucić FSa na drugi rdzeń, a tylko dopilnować, żeby pozostałe procesy "zostały" na pierwszym rdzeniu.
Rozwiązanie to powinno zmaksymalizować zysk z posiadania drugiego rdzenia.
: ndz 16 gru, 2007 18:51
autor: konraf
Dzisiaj sie trochę pobawiłem rdzeniami. Najpierw dałem niemal wszystko poza FS9 na drugi rdzeń (wszystko, czyli AS6, ServInfo, SB3, FSLcd, FSrouter, słowem wszystko co zwiazane z FS). Samego FS zostawilem na rdzeniu 1. Okazało się, że użycie rdzenia 2 było znikome, a pierwszego znaczące.
Co ciekawe, gdy dałem FS9 na rdzen 1 i 2, to oba rdzenie działały z dużym obciażeniem.
Edit:
Ech, chyba to jednak SI obciążał tak drugi rdzeń, że wyglądało, że FS9 działa na dwóch.
: ndz 16 gru, 2007 19:26
autor: Yoda
A jak się to miało Bartek do FPSów w samym FSie?
: ndz 16 gru, 2007 19:45
autor: konraf
Powiem Ci, że generalnie przy procku AMD X2 3800+ (2 Ghz, podkrecony do 2,4Ghz), w FS9 szału nie ma. Ciut może płynniej z uwagi na to, że mozna sobie dodatkowy soft dac na drugi rdzeń. Takie ServInfo potrafi nieźle mulić i pamietam z czasów AMD 64 3000+, że gdy SI zaczynało pobierać dane, FS się przycinał nieźle. Przy wrzuceniu SI na drugi rdzeń, nie ma z tym problemu. FS9 leci sobie na jednym, a SI i reszta na drugim.
: pt 04 sty, 2008 23:25
autor: PolBaj
Witam w tym wątku.
Konraf a czy mógłbyś mi powiedzieć czym dzielisz zadania na procesory? Czy używasz do tego CPU Control? Ja od wczoraj mam Ten sam procesor co Ty i za bardzo nie wiem jak np. wywołać "Koligację procesorów" z Windows XP wspomnianą na początku wątku? Zainstalowałem sterowniki "AMD Dual-Core Optimizer" ale nie wiem czy nie trzeba do tego CPU dograć jeszcze jakichś innych. Jeśli byłbyś taki miły to napisz jakie masz przogramy do sterowania tym procesorem.
Dzięki i Pozdrawiam PolBaj
: pt 04 sty, 2008 23:39
autor: Gładki
Tak. To właśnie CPU Control służy do przypisania rdzeni do odpowiednich procesów.
: sob 05 sty, 2008 08:56
autor: Rosomak
Korzystam z tego programiku i zastanawiam się czy warto dodawać wpis o procesorze 2 jajecznym w configu.
W kazdym razie różnica z tym wpisem i bez niego nie przekracza 3-4 klatek przynajmniej u mnie.
: sob 05 sty, 2008 10:59
autor: RzEmYk
Rosomak pisze:Korzystam z tego programiku i zastanawiam się czy warto dodawać wpis o procesorze 2 jajecznym w configu.
W kazdym razie różnica z tym wpisem i bez niego nie przekracza 3-4 klatek przynajmniej u mnie.
Jaki wpis? W jakim configu? Możesz napisać jaśniej?
: sob 05 sty, 2008 11:24
autor: Rosomak
Tutaj jest wątek o tym.
a wpis jest nastepujący
[JOBSCHEDULER]
AffinityMask=3
: sob 05 sty, 2008 11:29
autor: some1
Na mój skromny rozumek, ten wpis robi to sam co ustawienie koligacji w Menedżerze zadań albo jakimś innym programie. Ale które z nich ma wyższy priorytet to nie wiem.
: sob 05 sty, 2008 12:07
autor: RzEmYk
Ten wpis tyczy się jedynie FSXa - o ile się nie mylę - od wersji SP1. Dopiero ta wersja obsługuje wielordzeniowce.
Ten wpis włącza obsługę w FSXie i teoretycznie dzięki temu FSX może korzystać z więcej niż jednego rdzenia.
Mój "poradnik" opiera się głównie na poprawie osiągów FS9, albo dowolnego programu, który korzysta tylko z jednego rdzenia. W przypadku natywnej obsługi wielu rdzeni należy zostawić przypisanie procesu do obu rdzeni, inaczej zamiast przyśpieszenia, zwolnimi program. W menedżerze powinny być zaznaczone zarówno CPU 0, jak i CPU 1, w CPU Control powinien zostać wpis 1100 (lub 1111 dla czterordzeniowców).
Na chłopski rozum:
Ustawianie koligacji w menedżerze, czy dowolnym programie to tak jakby stosowanie znaków zakazu dla auta na drodze dwupasmowej:
a) program obsługujący wiele rdzeni
Jeśli jest ustawione na wykorzystanie obu rdzeni, to kolumna aut może jechać zarówno lewym, jak i prawym pasem. Auta szybsze mogą wyprzedzić drugim pasem auta wolniejsze. Jeden ciąg zadań może być obliczany na jednym jądrze, drugi na drugim.
Jeśli teraz postawimy znak zakazu jazdy lewym pasem (ustawimy koligację na jeden rdzeń), to zwolnimy cały ruch do najwolniejszej kolumny aut. Auta szybsze będą musiały czekać, aż te wolniejsze zjadą z autostrady, powstaną korki i opóźnienia. Jeden ciąg zadań będzie musiał czekać, aż zostaną wykonane obliczenia na poprzednim ciągu.
b) program obsługujący jeden rdzeń.
Na dwupasmówce pomimo możliwości jazdy po obu pasach auta ustawiają się w jeden ciąg np. na lewym pasie, znów powstają opóźnienia i korki. Można to rozwiązać umieszczając część aut na lewym pasie, a część aut na prawym (przydzielić jeden proces na drugi rdzeń), wtedy zminimalizujemy opóźnienia. Po jednym pasie będą jechały sobie np. TIRy do Biedronki, a po drugim auta osobowe i TIRy do Tesco (w którym to podobno jest tanio ...uresko).
Reasumując:
Po dodaniu wpisu FSX zaczyna pracować na więcej niż jednym rdzeniu (teoretycznie, nie wiem jak jest z praktyką). Jeśli w tym momencie narzucimy mu tylko jeden rdzeń, to zwolnimy i zakorkujemy ten rdzeń. W takim przypadku należy zostawić przypisanie do dwóch (lub więcej) rdzeni.
Za to np. w FS9, który sam nie potrafi skorzystać z wielu rdzeni, należy go przerzucić na drugi rdzeń, aby jak najwięcej mocy obliczeniowej zostało dla jego dyspozycji, a pozostałe programy (jak AS6, FSInn, itd.) zostawić na pierwszym rdzeniu.
: sob 05 sty, 2008 12:15
autor: PolBaj
Tak, ale mającna myśli "wpis" chodzi Wam o wpis w FSX a nie w Windows XP, przynajmniej to wynika z podanego linku do forum Il2. Ja poznałem troszkę CPU Control i powiem, że fajny jest, ale czy zawsze musi być włączony? A co jeśli ustawię go manualnie , tak jak podane na samym początku tematu, a nie będe akurat latał w FS2004, to w takim wypadku rdzeń z fs-em jest nieużywany? A moze trzeba go wtedy na automat przestawić?
: sob 05 sty, 2008 12:25
autor: RzEmYk
PolBaj pisze:Tak, ale mającna myśli "wpis" chodzi Wam o wpis w FSX a nie w Windows XP, przynajmniej to wynika z podanego linku do forum Il2. Ja poznałem troszkę CPU Control i powiem, że fajny jest, ale czy zawsze musi być włączony? A co jeśli ustawię go manualnie , tak jak podane na samym początku tematu, a nie będe akurat latał w FS2004, to w takim wypadku rdzeń z fs-em jest nieużywany? A moze trzeba go wtedy na automat przestawić?
Wpis w FSX.cfg.
CPU Control musi działać w tle żeby spełniał swoje zadanie, czyli pilnował przypisania procesów do odpowiednich rdzeni.
Nie bardzo rozumiem o co Ci chodzi z tym nieużywaniem rdzenia.
: sob 05 sty, 2008 13:12
autor: PolBaj
Już wyjaśniam.
Jeśli ustawimy CPU Control w tryb Manual, to ręcznie przypisujemy programy do poszczególnych rdzeni procka i to jest ok. A teraz załóżmy, że kończymy zabawę w latanie i rozpoczynamy pracę z edytorem graficznym i już mamy inny zestaw programów do obsłużenia, a w procesach CPU Control w trybie Manual dalej są te, które były wykorzystywane w FS a skoro jest to tryb ręczny, to inne programy niż te już przypisane do rdzeni powinny być albo zablokowane, albo przypisywane losowo do CPU
Tak na zdrowy rozsądek, to powinniśmy teraz się przełączyć w CPU Control na tryb Automat, bo nie zależy nam już, na którym rdzeniu co będzie przypisane no i mamy już inne programy na rdzeniach. Czyli konkretne pytanie brzmi, jak zachowa się CPU kontrol w trybie manual z innym zestawem programów niż te przypisane już do rdzeni?
: sob 05 sty, 2008 13:17
autor: RzEmYk
Ale zauważ, że każdy nowo uruchomiony program (nie umieszczony na liście) z definicji dostaje przypis 1100 (lub 1111 w czterordzeniowcu), więc nie ma co kombinować.
Manual zmienia Ci tylko te programy, które ma na liście, pozostałych nie rusza.
: sob 05 sty, 2008 22:38
autor: PolBaj
To wszystko tłumaczy i w takim wypadku rzeczywiście nie ma co debatować. Poza tym co to za problem przełączyć z manuala na automat, raptem 3, 4 kliknięcia
Pozdrawiam Polbaj
: pt 11 sty, 2008 19:03
autor: RzEmYk
W przypadku niektórych gier i dwu- lub czterordzeniowego procesora może zaistnieć drastyczny spadek wydajności, który znika po przypisaniu tylko jednego rdzenia dla procesu.
Rozwiązaniem jest hotfix ze strony MSa:
http://support.microsoft.com/kb/896256/pl, przy ściąganiu należy pamiętać o polskiej wersji patcha.
PS. Jak zwykle rozwiązanie znalazłem przypadkowo
UWAGA!
Poprawka ta (WindowsXP-KB896256) może (i powoduje) samoistne resety lub zawieszanie się kompa, więc instalujcie w ostateczności.
W razie problemów można ją odinstalować w Dodaj/Usuń programy.
: czw 18 gru, 2008 14:47
autor: konraf
Odnośnie:
[JOBSCHEDULER]
AffinityMask=3
czy ktoś może napisać, czy ten zapis faktycznie podnosi wydajność? Czytałem tu i ówdzie, że zapis ten nic nie daje.
Podobnie TEXTURE_BANDWIDTH_MULT. W FS9 zalecało się tą wartość podwyższyć, a tymczasem tu:
http://www.highflightsimulations.com/fsxcfg.html
podają, że w FSX należy ten parametr wręcz obniżyć.
: ndz 07 cze, 2009 11:45
autor: RzEmYk
Nie jestem pewien czyja to "wina", być może SP3 do Win XP, ale paradoksalnie już lepiej jest zostawić FS9.exe oba rdzenie i wtedy działa lepiej/szybciej, a więc musicie sami poeksperymentować kiedy jest lepiej...
Co to za cuda? Nie wiem...
: ndz 03 sty, 2010 20:10
autor: RzEmYk
Przypadkiem natrafiłem na
Flight Simulator 2004 Affinity Tool.
Teoretycznie rozdziela proces FS9.exe na dwa rdzenie,
są nawet na to screeny. Jednak mi to jakoś dziwnie wygląda.
U mnie niestety wyskakuje okienko z błędęm podczas próby uruchomienia programu, więc nie jestem w stanie przetestować tego programu.
Wersje dla procesorów Intel:
wersja 1.0
Dla wersji 2.0 są odnośniki na stronie bloga.
Wersje dla procesorów AMD:
wersja 1.0
wersja 2.0
EDIT:
Wrażenia są jak na razie różne. Jedni chwalą, u innych wystąpił spadek FPS. Zobaczymy z czasem co to będzie...
: pn 31 maja, 2010 15:20
autor: RzEmYk
Na Simmarket pojawił się płatny program, który robi to samo, co Flight Simulator 2004 Affinity Tool.
http://secure.simmarket.com/fsps-multic ... ment.phtml
: wt 01 cze, 2010 14:33
autor: Yaskier
O ile dobrze rozumiem Twoje komentarze - do FSXa z SP1 lub wyższym takie narzędzie nie jest potrzebne - procesor dwu/wielordzeniowy jest wykorzystywany w pełni (wbrew temu co tam piszą na stronie produktu)?
: wt 01 cze, 2010 14:36
autor: PZL Belfegor
Tak, a jeśli koniecznie chcesz nakazać użycie konkretnych rdzeni, możesz to narzucić przez wpis w fsx.cfg.
: wt 01 cze, 2010 14:42
autor: Yaskier
Ok, ale czy manualny podział procesów na konkretne rdzenie w FSXie ma sens, tzn. czy ma pozytywny wpływ na wydajność?
: wt 01 cze, 2010 14:48
autor: PZL Belfegor
Przy procesorze czterordzeniowym możesz sobie np. przerzucić FSa na 3 ostatnie rdzenie, a programy współpracujące (np. silnik pogodowy itp.) zostawić na pierwszym - być może zaobserwujesz wzrost wydajności, a jeśli nie, to po prostu wróć do domyślnego ustawienia. Przy procesorze dwurdzeniowym zabawa koligacją samego FSa nie ma sensu, a jak będzie przy trzyrdzeniowym trudno mi ocenić

: ndz 17 kwie, 2011 12:23
autor: Marcin Steuer
To takie jeszcze pytanie praktyczne. Mam procesor 2-rdzeniowy z obsługą 4 wątków (i5). Czy w programie ustawić 2 czy 4 rdzenie? Menadżer urządzeń widzi procesor jako cztery.
: ndz 17 kwie, 2011 13:43
autor: RzEmYk
Który FS?
: ndz 17 kwie, 2011 18:37
autor: Marcin Steuer
FS9.
: ndz 17 kwie, 2011 20:13
autor: RzEmYk
Albo Flight Simulator 2004 Affinity Tool albo ustawianie na drugie dwa "rdzenie".
W rzeczywistości Twój procesor ma dwa fizyczne rdzenie, a te dodatkowe, to tylko
HT.
: ndz 17 kwie, 2011 20:20
autor: Marcin Steuer
Nie bardzo rozumiem 'drugie dwa'? Czyli np dodatki ustawić na 3 i 4 z czterech wątków procesora, tak? A jeśli program nie wykryje 4 'rdzeni' to ustawić na drugi rdzeń?
: ndz 17 kwie, 2011 20:22
autor: RzEmYk
Na CPU 2 i CPU 3 - one odpowiadają za fizyczny drugi rdzeń. Ten pierwszy fizyczny ma przypisane CPU 0 i CPU 1.
: ndz 17 kwie, 2011 22:57
autor: Marcin Steuer
Ok. Hm, działa na razie na 4 procesorach, chciałem to wymusić. Ale i tak w sumie nie żre więcej niż 25% mocy z naprawdę setkami paczek AI + REXem + 1600x900.
Więc ewentualne problemy leżą widocznie po stronie GPU.
: pn 18 kwie, 2011 09:04
autor: RzEmYk
Te 25%, to 100% obciążenia jednego rdzenia. Wiele nie zdziałasz. To procesor limituje, nie grafika.
: pn 18 kwie, 2011 10:39
autor: Marcin Steuer
Rzemyk, no ale czemu? Skoro działają WSZYSTKIE procesory i w sumie obciążenie tak się waha? (no dobra, na jedną sekundę skoczyło pod 30 %). To co tu ogranicza? Ma przecież 75% mocy wolnej i każdy ze rdzeni pracuje na niskiej wydajności, co widzę w wykresie menadżera zadań przy FSie uruchomionym w oknie.
: pn 18 kwie, 2011 16:45
autor: RzEmYk
Masz 1 procesor, a w nim 2 rdzenie fizyczne i 2 nazwijmy to wirtualne. System widzi całą sytuację jako 4 rdzenie. Do jednego rdzenia fizycznego jest "dopięty" jeden wirtualny.
Jak wykorzystujesz 100% fizycznego rdzenia, to na ten wirtualny zostaje minimalna ilość mocy przerobowych.
FS9 jest aplikacją, która wykorzystuje tylko jeden rdzeń. Dopiero FSX od SP1 potrafi skorzystać z dodatkowych rdzeni.
Windows pokazując zużycie sumuje wszystkie rdzenie. Mając 4 rdzenie dzieli sobie 100% na 4, stąd pełne wykorzystanie jednego rdzenia daje maksymalną możliwą wartość 25%. Przekraczanie tej wartości jest możliwe jeśli uda się skorzystać z HT, a więc tego wirtualnego rdzenia.
Dodatkowo FSCopilot w najnowszej wersji (po ustawieniu wielowątkowości) potrafi przerzucić część obliczeń na inny rdzeń. Przy czym nie mam pewności czy robi to komponent ActiveX (.ocx) uruchomiony wewnątrz FSa czy jego (FSCopilota) zewnętrzny moduł bierze obliczenia na siebie. Nie wnikałem nigdy.
Więc ogranicza sam FS, który nie umie sam z siebie skorzystać z wielu rdzeni.