Форум: "Прочее";
Текущий архив: 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