Помогите закомплектовать компьютер - страница 5

 
chv, у тебя загрузка 50 процентов ядра потому что не запущен оптимизатор в МТ. Если его запустить то ядро проца загрузиться по уши, причём одно пока ещё не сделано распаралеливание задачи оптимизации на несколько потоков кратному количеству ядер. Если два терминала загрузить оптимизацией то она два ядра загрузятся выше 50 процентов.

Кстати я вот думаю, а нужно ли делать копии данных при создании нескольких потоков на оптимизацию. Ведь пока один поток берёт следующие котировки из массивов в оперативной памяти то они в регистры процессора передаются по одной шине данных и второй поток по-любому ждёт, пока первый не возьмёт данные. Так может имеет смысл просто синхронизировать доступ потоков к одной копии данных в оперативной (с файлом подкачки) памяти? Ведь наверно именно процесс расчёта в эксперте забирает львиную долю процессорного времени и пока один считает другой в это время может брать данные или тоже заниматься расчётом. К томуже если один поток взял котировки то вотрой может их взять из кеша первого уровня процессора, который 1 мегабайт. Совпадение моментов когда два и больше потока захотят обратиться к памяти будет относительно не много (я так думаю :))
Поэксперементируйте с этим в МТ5. Я подозреваю что не сильно потеряется скорость, если сделать синхронизацию потоков вместо создания копии данных на каждый поток.
 
elritmo:
chv, у тебя загрузка 50 процентов ядра потому что не запущен оптимизатор в МТ. Если его запустить то ядро проца загрузиться по уши, причём одно пока ещё не сделано распаралеливание задачи оптимизации на несколько потоков кратному количеству ядер. Если два терминала загрузить оптимизацией то она два ядра загрузятся выше 50 процентов.

Если внимательно посмотреть на мой screenshot на 4-й странице темы, на нём видно, что работает как раз оптимизатор, в нём прошло 5 шагов из 16-ти.
Могу отметить, что по результатам неоднократных наблюдений только два терминала, одновременно работающих, плюс СУБД MS SQL Server, могут загрузить двухядерный CPU на 100%. Один терминал в любом режиме (тестер, оптимизатор) грузит CPU на ~49-53%, что укладывается в погрешность с учётом того, что на системе работает не только процесс терминала, но и Spider антивируса, firewall, Media player, downloader и т.д.

 
Да не разглядел повнимательнее твой скриншот. Может быть загружается не на все сто потому что приоритет потока не высокий на оптимизацию - типа idle или low. Иначе всё подвиснет и будет очень вяло реагировать на команды пользователя.
 
elritmo:
Да не разглядел повнимательнее твой скриншот. Может быть загружается не на все сто потому что приоритет потока не высокий на оптимизацию - типа idle или low. Иначе всё подвиснет и будет очень вяло реагировать на команды пользователя.


Я не занимаюсь такой деятельностью, как изменение приоритета процесса или потоков терминала. Он просто запускается и работает, как есть. И машина вполне неплохо на всё реагирует, пока терминал один. В числах это выражается загрузкой CPU на 50%, о чём я и пишу.

Может, ещё у кого-то есть X2 процессор, и человек поделится своим результатом загрузки CPU от одного терминала?

 
elritmo:
Так может имеет смысл просто синхронизировать доступ потоков к одной копии данных в оперативной (с файлом подкачки) памяти? Ведь наверно именно процесс расчёта в эксперте забирает львиную долю процессорного времени и пока один считает другой в это время может брать данные или тоже заниматься расчётом. К томуже если один поток взял котировки то вотрой может их взять из кеша первого уровня процессора, который 1 мегабайт. Совпадение моментов когда два и больше потока захотят обратиться к памяти будет относительно не много (я так думаю :))
Поэксперементируйте с этим в МТ5. Я подозреваю что не сильно потеряется скорость, если сделать синхронизацию потоков вместо создания копии данных на каждый поток.

Каждый процесс (а терминал является отдельным exe-процессом) имеет в Windows своё изолированное адресное пространство, поэтому обычными методами вы не получите доступ к памяти другого процесса (другого терминала). Это два независимых процесса. Внутри одного процесса (одного работающего терминала) его потоки, конечно же, могут получать совместный доступ к памяти (желательно safe-threading доступ, с синхронизацией через семафоры, мьютексы и критические секции Win API), но это будет доступ к памяти в пределах одного терминала.

Терминалы могут обмениваться данными друг с другом: через файлы на диске, СУБД, сетевые сокеты, веб сервисы и т.д., но это в любом случае будет не общий доступ к одной области оперативной памяти, и не к одному кешу CPU точно. Насколько это целесообразно, рассчитать всё в терминале или скопировать из другой копии терминала, если она есть, можно проверить только реальными unit-тестами.

 
В МТ5 планируется в пределах одного терминала запускать несколько потоков (столько же сколько и ядер) производящих процесс оптимизации в пределах одного процесса. Но я подумал что вероятно не имеет смысл делать копию котировок в памяти для каждого потока. Вот собственно это я имел ввиду.
Но по-любому это надо проверять тестами с общим массивом для всех потоков и так же вариант, когда для каждого потока своя копия.
Кстати, если один поток взял данные и второй следом за ним обращается к тем же данным, то я думаю он берёт их уже из кеша процессора - для чего собственно он такой большой около 1 мегобайта? Конечно, что происходит на низком уровне мы не знаем, но я лично думаю что так.
 
Вопрос разработчикам и пользователям на сколько реально использование nVidia Tesla GPU Computing Processor (Tesla C870) при оптимизации советников. http://www.nvidia.ru/page/tesla_computing_solutions.html
 
здрасте.всех с новым годом.подскажите пож.какой конфигурации выбрать комп. для работы:
141913 MSI (7365-008) P35 Neo Combo-F Socket775, P35, DDR2-1066, FSB1333, PCI-E, LAN, ATX
2 x 120003 1024Mb PC2-6400 800MHz DDR2 DIMM OCZ System Elite 5-5-5-15 [OCZ2SE8001G] BOX
131028 ASUS DVD±RW+CD/RW DRW-1814BLT Light Scribe White SATA OEM
131297 Int 3.5" All-In-One + 1x HUB Microsonic CR09 High Speed черный (SDHC/CF/ MD/ SM/ MMC/ SD/ MS/ xD) до 16 Гб OEM
139161 256Mb PCI-E X1650XT TV 2xDVI [Powercolor DDR3, 128bit] OEM
108590 Behold TV Model M6 Extra, TV-tuner, RDS, FM, int
89701 Thermaltake VD3430SNAE Matrix VX Silver, MiddleTower, ATX, 430W, USB, AUDIO, IEEE1394, FAN, 5.25''x4, 3.5''x5
129301 [BOX] Socket 775 4Mb L2 FSB 1333 Intel Core2 Duo 3.00 Ghz (E6850)
2 x 133766 250 Gb 7200rpm 16Mb cache Seagate 7200.10 ST3250410AS
илиULTRA Ultimate C2Q2450204/HD 3850/DWC (Core 2 Quad 2.40/1066/8192K S775, Intel P31, 2x1024Mb DDR2-800, HDD SATA 500Gb/7200/32Mb, 256Mb PCI-E HD 3850 TV 2*DVI HDMI, DVD±RW+CD/RW, Card Reader, USB 2.0, Sound, LAN, ATX 450W) может что-нибудь изменить? спасибо.
 
Отлично, dpg03, оба варианта хороши - даже трудно сказать, что лучше. Мой домашний писюк значительно слабее, и я тебе завидую самой черной завистью. Выбирай что сможешь по своим финансовым возможностям и пихай в системник. При разумной организации вычислений все у тебя будет получаться вовремя, даже на гораздо слабейшей конфигурации.
 
спасибо.и всё же: №1 или №2.сласибо.
Причина обращения: