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

Вниз

Intel® Threading Building Blocks   Найти похожие ветки 

 
Subzero ©   (2008-09-17 22:01) [0]

Есть ли что-либо подобное для дельфи ?


 
KilkennyCat ©   (2008-09-17 23:23) [1]

Здесь, конечно же ничего не сказано....
http://www.intel.com/cd/software/products/asmo-na/eng/294797.htm#features


 
Subzero ©   (2008-09-18 00:27) [2]

KilkennyCat ©,
При всём уважении, Вы мой вопрос хоть прочли ?
Прямая цитата оттуда:
Intel® Threading Building Blocks (Intel® TBB) is an award winning C++ template library that abstracts threads to tasks to create reliable, portable and scalable parallel applications.
А мой вопрос заключался в следующем:
"Есть ли что-либо подобное для дельфи ?"


 
KilkennyCat ©   (2008-09-18 00:30) [3]

а... да. Приношу извинения. Я подумал, что именно сей продукт.


 
Subzero ©   (2008-09-20 06:40) [4]

Неужели для Дельфи нет ничего, специально заточенного под многоядерные процессоры ? Это я спрашиваю завсегдатаев этого форума, всё-таки  мастера Дельфи. Понятно, что поддержку нужно ждать от Intel, но ведь и
"OpenMP (Open Multi-Processing) это набор директив компилятора, библиотечных процедур и переменных окружения, которые предназначены для программирования многопоточных приложений на многопроцессорных системах с разделяемой памятью на языках C, C++ и Fortran." - описание взято из http://ru.wikipedia.org/wiki/OpenMP, также подразумевает С, С++ и Fortran. Где поддержка мультипроцессорности в Delphi ?
Написал многопоточное приложение в Delphi, получил удручающие результаты - скорость обработки информации получилась гораздо меньше, нежели та же программа, написанная без разделения программы на потоки.
Или в Delphi так криво реализована многопоточность ? Сомневаюсь в этом.


 
TUser ©   (2008-09-20 07:41) [5]

Я на многих ядрах не игрался, но подозреваю, что автор как-то странно реализовал многопоточность. Ну, например, (я не подозреваю автора в таком деянии, а просто привожу пример того, как можно было бы снизить производительность введя потоки) если мы упихаем весь код метода Execute в Synchronize, то получим весь осмысленный код, выполняющийся в одном потоке + дополнительные расходы на переключение между несколькими дополнительными, что, конечно, даст дополнительные же тормоза.


 
Subzero ©   (2008-09-20 07:59) [6]

TUser,
Что касается странности реализации - взял пример всеми уважаемого Марко Кенту и немножко переделал его под свою задачу. Логическая структура организации потоков осталась такой же, как и в оригинале у Кенту. Только работа, выполняемая в потоках изменилась. Что интересно, потоки никаким образом не пользуются никакими разделяемыми ресурсами - всю необходимую для потоков информацию подготавливаю заранее - считываю информацию из файлов, заполняю структуры данными и т.д.
Т.е. потоки фактически выполняют совершенно не связанную между собой работу.


 
Subzero ©   (2008-09-20 08:11) [7]

Я бы конечно, привел исходник в студию, но смогу сделать это не раньше, чем завтра. Да ведь дело даже не в нём. Я уже почти решил свою задачу на С++. Тем более, что изначально в задании требовалось реализовать задачу именно на нём. Просто хотел ускорить выполнение программы, сначала взялся за "выглаживание" алгоритма обработки, затем вот подумал о распаралеливании.
Взяв простые примеры многопоточных программ на Дельфи, выполняющих, к примеру сортировку, я убедился, что никакого выигрыша не наблюдается, а наоборот, проигрыш, и серьёзный. Вообще, кто-нибудь в курсе, если использовать WinAPI (применительно к многопоточности, конечно), напрямую, есть ли выигрыш от его использования ?


 
TUser ©   (2008-09-20 08:24) [8]


> Subzero ©   (20.09.08 07:59) [6]
>
>

Кстати, сколько инфы? Совершенно реальная ситуация, - инфы много, она в свопе, соотвественно лимитирует диск, поток де факто работает только один, а добавление дополнительных только заставляет систуму переключаться между ними, то есть тормозить.


 
Subzero ©   (2008-09-20 08:30) [9]

TUser,
Инфы не очень много, обрабатываются файлы размером под 20-30 Мб.
Сейчас многие жёсткие диски имеют буферы большего объёма :), так что это не критичное место совсем. Скорость чтения в тот же TStream несравнима с общим временем работы потоков.


 
DVM ©   (2008-09-20 14:58) [10]


> Subzero ©   (20.09.08 06:40) [4]


> Написал многопоточное приложение в Delphi, получил удручающие
> результаты - скорость обработки информации получилась гораздо
> меньше, нежели та же программа, написанная без разделения
> программы на потоки.
> Или в Delphi так криво реализована многопоточность ? Сомневаюсь
> в этом.
>

Я вот тоже сомневаюсь. Тем более, что Делфи тут вообще ни при чем. Потоками рулит ОС и не надо ей помогать в этом. Главное ей не мешать.


 
DVM ©   (2008-09-20 14:59) [11]


> Т.е. потоки фактически выполняют совершенно не связанную
> между собой работу.

Уверен на 100%?


 
KSergey ©   (2008-09-20 15:05) [12]

> Subzero ©   (20.09.08 06:40) [4]
> Написал многопоточное приложение в Delphi, получил удручающие
> результаты - скорость обработки информации получилась гораздо
> меньше, нежели та же программа, написанная без разделения
> программы на потоки.

Не совсем понятно: это результаты выполнения программы на одноядерном или многоядерном процессоре?
А вобще ответ один: руки. Все в них дело.

> Subzero ©   (20.09.08 06:40) [4]
> Или в Delphi так криво реализована многопоточность ?

А дельфи тут вообще при чем? Вы вообще понимаете как потоки работают и кто ими рулит?


 
Subzero ©   (2008-09-20 16:49) [13]

KSergey,
сомневайтесь лучше в своей компетенции.
DVM,

> Уверен на 100%?

Не уверен на 100%, и что это даёт ?
Пипец, ну и уровень ответов, я офигеваю...
Никто, кроме TUser ничего толкового даже спросить не может, не то, что дать конкретный ответ. Пипец, млин, мастера...

Потоками рулит ОС и не надо ей помогать в этом

Пацталом...
Точно, пипец, мастера.

А дельфи тут вообще при чем? Вы вообще понимаете как потоки работают и
кто ими рулит?

Нет, млин, не знаю нихрена, поэтому и задаю вопрос. Дельфи тут при том, что это её классом  я пользовался, когда описывал свои потоки.
Млин, где тут настоящие мастера? Или им просто сказать нечего, потому что реально нет ничего такого, сделанного для Дельфи, что реально помогало бы писать многопоточные приложения, и это удел только С++ и Фортрана ?

Забудьте Вы, мастера, про мою программу.
Я Вас спрашивал не ней, и не о том, насколько прямые у меня руки. ПИПЕЦ.
Вопрос в следующем:
Intel® Threading Building Blocks - есть ли что-либо подобное для Дельфи.


 
Subzero ©   (2008-09-20 16:55) [14]


> Вообще, кто-нибудь в курсе, если использовать WinAPI (применительно
> к многопоточности, конечно), напрямую, есть ли выигрыш от
> его использования ?

И про этот вопрос тоже забудьте, хотя на него никто даже и не думал отвечать.


 
Subzero ©   (2008-09-20 16:56) [15]


> Или в Delphi так криво реализована многопоточность ?

И это тоже мне по барабану. :)


 
Subzero ©   (2008-09-20 16:59) [16]

Прежде чем писать ответы - советую "мастерам" сходить по ссылке:
http://www.intel.com/cd/software/products/asmo-na/eng/294797.htm#features и ознакомиться с содержимым страницы, дабы не задавать мне ненужных вопросов.



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

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

Наверх




Память: 0.49 MB
Время: 0.007 c
2-1223295289
Урсулапов
2008-10-06 16:14
2008.11.16
как связаться с *.fdb-базой в delphi 7?


11-1195305295
Сидор
2007-11-17 16:14
2008.11.16
MsgOk: сделать модальным


9-1154513135
@!!ex
2006-08-02 14:05
2008.11.16
Можно ли реализовать Bump без использования шейдеров?


2-1223376642
DelphiN!
2008-10-07 14:50
2008.11.16
Помогите с оптимизацией SQL запроса


2-1223449935
JustI
2008-10-08 11:12
2008.11.16
TLargeIntField





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский