Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.03.01;
Скачать: [xml.tar.bz2];

Вниз

Вопрос про многоядерные процессоры и способы работы с ними   Найти похожие ветки 

 
Dreamse   (2008-12-28 10:40) [0]

Добрый день. Подскажите такой момент: Есть компьютер с 4 ядрами Quad
Каким образом можно написать программу которая поддерживала бы работу со всеми ядрами т.е 64

Есть ли документация по работе Delphi с многоядерными процесорами или примеры работы ?
Для чего это нужно. Есть программа работающая сразу в многопотоковом режиме. Хочеться так же сделать поддержку 2 - 4 ядер именно из программы.


 
@!!ex ©   (2008-12-28 11:16) [1]

Вопрос бредовай, автор не понимает о чем говорит.


 
Dreamse   (2008-12-28 11:26) [2]

Ответ бредовый, @!!ex не понимает о чем говорит автор.

Упрощу вопрос. Как сделать в Delphi поддержку 64х ?
т.е полную поддержку 4 ядерных процессоров.

для @!!ex

Например берем 3DMax

На 2х ядернике очень мощном он работает медленнее чем на слабом четырех ядернике.
Игры же наоборот. Хотя в том же Crysis встроенна поддержка 4 ядер. В остальных 95 % игр нет.


 
Palladin ©   (2008-12-28 11:37) [3]


> Dreamse   (28.12.08 11:26) [2]

Зря сомневаешься. Ответ [1] прямо в точку.


 
AndreyV ©   (2008-12-28 11:54) [4]

> [2] Dreamse   (28.12.08 11:26)

Каша у тебя в голове.
Если программа многопоточная - ОС и так разрулит. А 64 из другой оперы.


 
antonn ©   (2008-12-28 13:40) [5]

Прочел тему и напомнило об одной штуке :)
Среди игроков популярна программа "CPU Control". Само ее описание просто волшебное:
CPU Control - утилита для управления распределением физических ядер процессоров.
Так, программа, которая не понимает присутствия в системе нескольких виртуальных процессоров, никогда не будет задействовать второй из них. А когда подобных приложений накапливается много, о быстрой реакции системы можно забыть. Системная утилита под названием CPU Control призвана несколько упростить эту задачу.

Потом напридумывали о том, что она сильно оптимизирует работу многопоточных приложений и маст_хэв для любого уважающего себя геймера %)


 
Alkid   (2008-12-28 13:43) [6]

Автор, утилизация мощностей нескольких ядер и архитектура (х64, х86) - это вещи сугубо ортогональные.


 
Mystic ©   (2008-12-28 14:41) [7]

> Есть программа работающая сразу в многопотоковом режиме.
>  Хочеться так же сделать поддержку 2 - 4 ядер именно из
> программы.


Обычно в таких программах предусмотрена возможность настраивания количество потоков. Соответственно сам пользователь может решить, сколько потоков выделить на ту или иную задачу. Есть возможность через WinApi получить количество ядер, т. е. максимальное количество потоков, которые могут работать одновременно без переключения. Если это игра, то это хоть и не очень хорошо, но еще можно запускать у себя количество потоков равное количеству ядер при переходе в полноэкранный режим. И возвращать все на круги своя когда пользователь выходит из игры. Но если это вычисления, то такой путь не очень приемлем. Когда все потоки загружены на 100%, Windows (по крайней мере у меня, XP) может крайне неохотно отзываться на действия пользователя. Что мешает разработчикам Task Manager-а присвоить чуть выше приоритет и мгновенно реагировать я не знаю.

Также есть возможность привязки отдельного потока к определенному ядру.


 
Городской Шаман   (2008-12-28 17:42) [8]


> Dreamse   (28.12.08 11:26) [2]


Смерть мозга?

64-битной адресации на Delphi нет, бери или Freepascal или C++. Распараллеливания операций на уровне компилятора тоже нет. То есть механизм выполнения нитей на разных процессорах, это все обернуто в удобный класс TThread, от которого наследуешься и в run пишеш свой код, который будет выполнятся отдельно от основной нити программы на другом процессоре(если он есть).


 
Dreamse   (2008-12-28 18:08) [9]

Спасибо. Прояснили слегка ситуацию.


 
Дмитрий Белькевич ©   (2008-12-31 00:34) [10]

Намешано всё в кашу.

Quad - это 4 ядра. 64 - это разрядность каждого из ядер (технология обозначается в противовес предыдущим 32-х разрядным, которые давно такими были, на писюках - начиная с 386sx). 32 никто специально не обозначал.

Распареллеливание возможно: либо всего кода, на уровне компилятора. Либо отдельных частей кода на уровне сырцов, с помощью потоков (или, точнее, нитей), например, классом TThread.

Delphi сам, в данный момент не умеет генерить 64х код, и не умеет делать распараллеленный код. По крайней мере, 64х в роадмапе Delphi есть. Когда появится? Сложно сказать. Недавно наконец юникодовости дождались, так что шансы есть (думаю, с юникодовостью возни было гораздо больше). Вопрос времени (видимо, достаточно близкого).

Сейчас имеет смысл смотреть в сторону Фрипаскаля или плюсов. Имеет смысл так же интеловские библиотеки (компилятор, ipp) посмотреть.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2009.03.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
2-1232019336
девушка
2009-01-15 14:35
2009.03.01
Модульность программы, пакеты


2-1231913845
des
2009-01-14 09:17
2009.03.01
как сохранить картинку?


2-1232018323
pavelkq
2009-01-15 14:18
2009.03.01
Фокус на Stringgrid


15-1230877089
desc
2009-01-02 09:18
2009.03.01
Как позвонить с Mail Agent- а на сервисный номер МТС ?


2-1232135717
programmer90
2009-01-16 22:55
2009.03.01
Вопрос по ShellExecute





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский