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

Вниз

Delphi-приложения на многоядерных системах   Найти похожие ветки 

 
Piligrim   (2013-04-02 08:35) [0]

Здравствуйте! Кто-нить в курсе как проги на Дельфи грузят многоядерные процы или они используют лишь одно ядро независимо от установленного камешка?


 
Павиа   (2013-04-02 08:43) [1]

Точно также как и на Си.

Сидит Билл Гейтс за компьютером. Подходит сынишка:
- Пап, а правда, что твой 98-ой многозадачный?
- Правда, сынок.
- А покажи, как эта многозадачность работает?!
- Сейчас, погоди, дискету доформатирую...

С тех пор кардинально ничего не поменялось. Графический интерфейс VCL, MFC так и остался однозначными.  
Что касается обработки данных, то если программа написана с учётом многозадачности она будет выполняться на нескольких процессорных ядрах.


 
Piligrim   (2013-04-02 08:47) [2]

А как написать прогу с учетом многозадачности? Чем она отличается от обычной в плане кодинга?


 
Piligrim   (2013-04-02 08:47) [3]

А как написать прогу с учетом многозадачности? Чем она отличается от обычной в плане кодинга?


 
Ega23 ©   (2013-04-02 08:54) [4]


> Чем она отличается от обычной в плане кодинга?

Если в плане "кодинга", то новые сочетания букаф появляются, всякие BeginThread и SetAffinityMask.
А если в плане разработки архитектуры, то надо читать умные книги и много думать.


 
MBo ©   (2013-04-02 08:55) [5]

Длительные операции выносить в отдельный поток (потоки)


 
Piligrim   (2013-04-02 09:22) [6]

Какие сайты и умные книги по написанию приложений для многоядерных систем и  многопоточности посоветуют уважаемые мастера?


 
MBo ©   (2013-04-02 09:23) [7]

Какую задачу предстоит решать?


 
Ega23 ©   (2013-04-02 09:28) [8]

ЕМНИП, у Танненбаума толково написано.


 
Павиа   (2013-04-02 10:07) [9]


> Чем она отличается от обычной в плане кодинга?

Работы больше.
1) Надо учитывать что теперь состояния могут изменяться во времени. А значит надо контролировать данные не только на входе и выходе но и в процессе обработке. А так же число состояний увеличивается в 3 раза. 3 состояния времени.
- До
- После
- текущее время.
2) Приходиться уделять вниманию планированию нагрузки. Балансировки.

Кодинг напоминает низкий уровень:
1) Внутренних средств тестирования нет.  Среда не будет подсказывать где ошибки.

Решаются эти проблемы продумыванием архитектуры и процесса разработки. По поводу шаблонов проектирования затрудняюсь сказать есть или нету.


> ЕМНИП, у Танненбаума толково написано.

Пишет толково, вот только тема ихмо гораздо шире чем у него расписано.


 
Ega23 ©   (2013-04-02 10:25) [10]


> 1) Внутренних средств тестирования нет.

Ээээ.. Чё это нет?


 
antonn ©   (2013-04-02 10:47) [11]

а что там было из проблем - "многопотоков" в dll? уже не виснет среда?


 
Ega23 ©   (2013-04-02 10:51) [12]


> а что там было из проблем - "многопотоков" в dll? уже не
> виснет среда?


А разве висла? Вроде нормально всё было, по крайней мере лет 7 назад.


 
Лукошко   (2013-04-02 11:31) [13]

2007 виснет при отладке многопоточки, интересно было б узнать по ХЕ`шкам


 
Ega23 ©   (2013-04-02 11:36) [14]


> 2007 виснет при отладке многопоточки

Именно в dll, или вообще?
Просто за "вообще" - меня терзают смутные сомнения.


 
брат Птибурдукова   (2013-04-02 11:36) [15]

XE2 не виснет. впрочем, я с многопоточностью не так уж много работал.


 
DevilDevil ©   (2013-04-02 12:35) [16]

> Здравствуйте! Кто-нить в курсе как проги на Дельфи грузят
> многоядерные процы или они используют лишь одно ядро независимо
> от установленного камешка?


однопоточные Delphi проекты работают на одном ядре
чтобы работать не нескольких ядрах - надо создавать и управлять потоками
OpenMP в Delphi нет


 
Лукошко   (2013-04-02 14:19) [17]


> Ega23 ©   (02.04.13 11:36) [14]

Необязательно в dll даже. К сожалению, постоянно виснущий код я пока не видел.
Зато есть пример 100% повторяющегося глюка D 2007: если открыть менюшку, а в это время из другого потока (можно по таймеру даже) отладчик попадёт в произвольную бряку - на окно Дельфи переключиться можно только по Win+Tab, даже Alt+Tab не помогает.
Кстати, сталкивался кто с таким поведением?


 
NoUser   (2013-04-02 15:35) [18]

> Именно в dll, или вообще?
Имеется ввиду что код потока именно в dll? Потому как и без dll там было весело.

> Кстати, сталкивался кто с таким поведением?
Уж не помню, но 2006-2007 (да и D7 вроде) при отладке многопоточки, дабы уберечь нервы, "пересел" на OutputDebugString.

А на XE+ проблем не заметил.

Кстати, коль уж тема поднята, вопрос к мастерам:
при BP в одном из потоков, IDE приостанавливает и все другие, так вот,
- нормально ли это (где-то описано) ?
- и можно ли это поведение изменить/управлять ?


 
Ega23 ©   (2013-04-02 15:56) [19]


> при BP в одном из потоков, IDE приостанавливает и все другие

Разве?


 
NoUser   (2013-04-02 16:50) [20]

как было раньше, не знаю - тогда не интересовался, а XE+, да, но не одномоментно, вроде есть небольшой перекос по таймингам.


 
Eraser ©   (2013-04-02 17:24) [21]


> Ega23 ©   (02.04.13 15:56) [19]

да, так и есть.


 
Eraser ©   (2013-04-02 17:26) [22]

основная беда VCL в плане потоков связана с графическими объектами, вроде TBitmap. сделано просто ужасно, причем до этой засады так просто не докопаешься, особенно если новичок.


 
Лукошко   (2013-04-02 19:17) [23]


> NoUser   (02.04.13 15:35) [18]
> Уж не помню, но 2006-2007 (да и D7 вроде) при отладке многопоточки, дабы уберечь нервы, "пересел" на OutputDebugString.

Аналогично, агак

> А на XE+ проблем не заметил.

Надо будет поактивнее лоббировать переезд на ХЕ, пасип.



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

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

Наверх





Память: 0.5 MB
Время: 0.002 c
15-1365095139
Аббат Пиккола
2013-04-04 21:05
2013.09.08
Введение единого обязательного языка программирования


15-1364934603
Юрий
2013-04-03 00:30
2013.09.08
С днем рождения ! 3 апреля 2013 среда


1-1312869852
Troychik
2011-08-09 10:04
2013.09.08
Есть ли какие идеи? (MS Word)


15-1364737450
ProgRAMmer Dimonych
2013-03-31 17:44
2013.09.08
Книги об общих принципах программирования


2-1356345825
toropoff
2012-12-24 14:43
2013.09.08
множества





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