Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/22: Рейтинг темы: голосов - 22, средняя оценка - 4.50
 Аватар для DrMcSheen
62 / 63 / 3
Регистрация: 25.05.2009
Сообщений: 520

Различается ли написание программ в C++ Builder для одно-двухъядерных процессоров?

21.12.2009, 07:14. Показов 4840. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Например, в текущей программе предстоит перебор 10^12 вариантов с небольшими вычислениями.
Будет ли прога по умолчанию просчитываться двумя ядрами проца или что-то дописать надо?
Я просто не в курсе архитектуры процессора.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.12.2009, 07:14
Ответы с готовыми решениями:

Написание программ для многоядерных процессоров
Привет. у вас на сайте я видел такую статью, но теперь когда она мне понадобилась, не могу ее найти. так вот: как писать программы для...

У двухъядерных процессоров на каждое ядро своя частота или общая?
Здравствуйте! Я где-то слышал что у двух ядерных процессоров тактовая частота в два раза больше чем у обыкновенных! На каждый ядер по своей...

Написание простейших программ для С++
В общем такая беда. В универе дали задачу, на сессию. Написать пару программ. Но проблема в том, что нет никакого опыта в написании :C...

29
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
23.12.2009, 11:15
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Evg Посмотреть сообщение
Я в математике не силён, а потому не знаю, что такое метод гаусса.
Это не обязательно. Операцию я тебе привёл, K зависит от A[r] и B[r] (r для каждого B[] - константа, но на саммом деле всётаки переменная (счётчик внешнего цикла).

Добавлено через 4 минуты
Цитата Сообщение от Evg Посмотреть сообщение
екторную сумму я привёл как простой пример, где на пальцах можно пояснить, что тут можно распараллелить.
Цитата Сообщение от Evg Посмотреть сообщение
Векторную сумму я привёл как простой пример, где на пальцах можно пояснить, что тут можно распараллелить.
Нереальный пример я тебе и сам приведу. А ты мне объясни, где взять вектора таких размеров, если это не строки матриц коэффициентов систем уравнений, если физическое пространство не миллиономерное, а математические пространства в основном как параметрические.

Добавлено через 1 минуту
Цитата Сообщение от Evg Посмотреть сообщение
используешь специальную опцию, а компилятор сам анализирует код программы и сам строит код по распараллеливанию
Что за опция? Давай для обеих сред и используемых в них компилах.

Добавлено через 36 секунд
Цитата Сообщение от Evg Посмотреть сообщение
Тут есть куча тонкостей по поводу того, как правильно писать программы, чтобы автоматические средства смогли правильно распараллелить.
Где взять тексты об этих тонкостях?

Добавлено через 7 минут
Цитата Сообщение от Evg Посмотреть сообщение
а потому в борланде и микрософте это будет выглядеть одинаково
Одно из другого не следует. Болэнд может предложить для этих целей оболочечный класс, а мелкософт - такую же функцию и тогда фиг ты сможешь использовать одну оболочку под обеими средами. Другое дело, что база идентична из-за одной оси. Так вот, меня интересует синтаксис попроще под обеими средами. Он может быть и единым, если непосредственно через API, по я ведь заранее не знаю, API ты предложишь, или оболочечный вариант. И на всякий случай, как это сделать средствами GCC под Linux и можно ли это вообще сделать там? Ну и наконец, последний вариант. Преположим, я захочу компилить под одной осью, а гонять под другой. Как из-под мелклсофта происать определение под Linuxом? Какие головы стырить, какие и как написать, какой код вызывает запрос?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
23.12.2009, 14:46
Цитата Сообщение от taras atavin Посмотреть сообщение
Это не обязательно. Операцию я тебе привёл, K зависит от A[r] и B[r] (r для каждого B[] - константа, но на саммом деле всётаки переменная (счётчик внешнего цикла).
Три раза прочёл, нихрена не понял

Цитата Сообщение от taras atavin Посмотреть сообщение
Нереальный пример я тебе и сам приведу. А ты мне объясни, где взять вектора таких размеров, если это не строки матриц коэффициентов систем уравнений, если физическое пространство не миллиономерное, а математические пространства в основном как параметрические.
"Вектор" - это совсем не трёхмерный вектор в пространстве (и вообще с пространством никак не связано). Термином "векторные операции" называют однотипные операции, которые проводятся над несколькими независимыми данными (например, элементами массивов)

Цитата Сообщение от taras atavin Посмотреть сообщение
Что за опция? Давай для обеих сред и используемых в них компилах.
Без понятия. Я уже говорил, что не уверен в том, что это есть в виндузовых компиляторах. Насколько я знаю, это есть в коммерческих компиляторах от Sun и Intel (скорее всего для itanium) - т.е. на тех системах, где есть серьёзные многопроцессорные сервера.

Цитата Сообщение от taras atavin Посмотреть сообщение
Где взять тексты об этих тонкостях?
Читать мануалы


Цитата Сообщение от taras atavin Посмотреть сообщение
Одно из другого не следует. Болэнд может предложить для этих целей оболочечный класс, а мелкософт - такую же функцию и тогда фиг ты сможешь использовать одну оболочку под обеими средами. Другое дело, что база идентична из-за одной оси.
Как скажешь, барин.

Цитата Сообщение от taras atavin Посмотреть сообщение
Так вот, меня интересует синтаксис попроще под обеими средами. Он может быть и единым, если непосредственно через API, по я ведь заранее не знаю, API ты предложишь, или оболочечный вариант.
Я вообще ничего не предложу, ибо програмированием под винду не занимался

Цитата Сообщение от taras atavin Посмотреть сообщение
И на всякий случай, как это сделать средствами GCC под Linux и можно ли это вообще сделать там?
Как я уже говорил, от компилятора это не зависит. Под линухом можешь посмотреть файл "/proc/cpuinfo" (это псевдофайл, который завязан на ядро) - там вся информация о количестве и типе процессоров. Файл вроде бы присутсвует на всех процессорах и версиях ядра, но формат в зависимости от версии и процессора плавает. Есть высокоуровненвые интерфейсы типа sysconf и sched_getaffinity, но с ними тоже могут быть какие-то проблемы (вторая соверщенно точно отсутсвует в старых версиях)

Цитата Сообщение от taras atavin Посмотреть сообщение
Ну и наконец, последний вариант. Преположим, я захочу компилить под одной осью, а гонять под другой. Как из-под мелклсофта происать определение под Linuxом? Какие головы стырить, какие и как написать, какой код вызывает запрос?
Не понял вообще ничего, но на всякий случай скажу, что виндузовая программа под линухом не будет работать (только через эмулятор)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.12.2009, 04:36
Цитата Сообщение от Evg Посмотреть сообщение
"Вектор" - это совсем не трёхмерный вектор в пространстве (и вообще с пространством никак не связано).
Ты про мат. пространства слышал? Вектор - частный случай матрицы, у которой 1 размер равен 1. Так вот, само объявление таких объектов эквивалентно объявлению математических пространств равной размерности. Они в основном параметрические и размерность определяется числом величин, которые ты хочешь обработать единообразно. При этом они должны иметь определённый смысл и быть описаны в задаче. Покажи задачу, в которой описан миллион величин. Пока ты будешь её читать, технология уйдёт далеко вперёд и возможно одно новое ядро будет это решать быстрее, чем миллион старых камней.

Добавлено через 8 минут
Цитата Сообщение от Evg Посмотреть сообщение
виндузовая программа под линухом не будет работать (только через эмулятор)
Не виндузячая, а кросовая. Меня интересует компиляция под виндой линуксовой проги.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.12.2009, 10:02
Цитата Сообщение от taras atavin Посмотреть сообщение
Покажи задачу, в которой описан миллион величин. Пока ты будешь её читать, технология уйдёт далеко вперёд и возможно одно новое ядро будет это решать быстрее, чем миллион старых камней.
Цифровая обработка сигналов. Да и большинство математических задач, где так или иначе тебе приходится делать несколько независимых действий (посчитать несколько независимых итегралов, сделать несколько независимых свёрток и т.п., вообще два независимых цикла с большим количеством итераций). Если ты хочешь, чтобы я тебе назвал что-то конкретное (уравнение товарища Петрова, фильтровка имени Сидорова) - то я этим не занимаюсь, а потому конкретного сказать не могу.

Цитата Сообщение от taras atavin Посмотреть сообщение
Не виндузячая, а кросовая. Меня интересует компиляция под виндой линуксовой проги.
Внятно поставленный вопрос - это уже половина ответа. Гадать на кофейной гуще, что же ты имел в виду, меня попросту ломает
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
24.12.2009, 12:32
Цитата Сообщение от Evg Посмотреть сообщение
Гадать
А зачем? Я и так всё написал.

Добавлено через 3 минуты
Цитата Сообщение от Evg Посмотреть сообщение
Да и большинство математических задач, где так или иначе тебе приходится делать несколько независимых действий (посчитать несколько независимых итегралов, сделать несколько независимых свёрток
Вот это и надо разносить по разным процессам.
Цитата Сообщение от Evg Посмотреть сообщение
Цифровая обработка сигналов
Миллиона сигналов? Или временного ряда из миллиона значений? Во втором случае гдето ещё надо обрабатывать скользящее окно. Так вот оно - источник необходимости межпотоковых связей в таких прогах.

Добавлено через 6 минут
Цитата Сообщение от Evg Посмотреть сообщение
цикла с большим количеством итераций).
Я этим занимаюсь достаточно профессионально, чтобы выиграть грант губернатора Кузбасса на разработку программы, моделирующей тепломагнитную свободно-вынужденную гидродинамику в ковше металлугрического агрегата. Так вот, все цилы вложены ещё в один, а тот ещё в один. И в цикле, вложенном во внешний идёт модификация ряда входных данных для всех циклов, вложенных в него. А если уж независимость циклов абсолютна¸ то они в разных задачах, а не подзадачах и их надо разнести по разным процессам.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
24.12.2009, 13:10
Цитата Сообщение от taras atavin Посмотреть сообщение
А зачем? Я и так всё написал.
Когда человек говорит, что не понял вопроса, можно поступить двумя способами:
- не полениться и потратить 5 минут своего драгоценного времени на то, чтобы внятно написать вопрос
- сказать гордо "сам дурак, я всё написал".

Что ж, кроме как "вот тебе конфетке" мне тут больше нечего сказать

Цитата Сообщение от taras atavin Посмотреть сообщение
Вот это и надо разносить по разным процессам. Миллиона сигналов? Или временного ряда из миллиона значений? Во втором случае гдето ещё надо обрабатывать скользящее окно. Так вот оно - источник необходимости межпотоковых связей в таких прогах.
Цитата Сообщение от taras atavin Посмотреть сообщение
Я этим занимаюсь достаточно профессионально, чтобы выиграть грант губернатора Кузбасса на разработку программы, моделирующей тепломагнитную свободно-вынужденную гидродинамику в ковше металлугрического агрегата. Так вот, все цилы вложены ещё в один, а тот ещё в один. И в цикле, вложенном во внешний идёт модификация ряда входных данных для всех циклов, вложенных в него. А если уж независимость циклов абсолютна¸ то они в разных задачах, а не подзадачах и их надо разнести по разным процессам.
Можно спросить? Ты мне сейчас пытаешься что-то объяснить или что-то доказать? Или просто предлагаешь пиписьками помериться?
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.12.2009, 04:52
Цитата Сообщение от Evg Посмотреть сообщение
Ты мне сейчас пытаешься что-то объяснить или что-то доказать?
Я хочу сказать, что между любыми двумя частями проги связь быть должна , но она должна быть минимально возможной исходя из особенностей задачи в целом. Если связи нет совсем - разноси по разным прогам. Если связь сильнее, чем могла бы быть - переделай декомпозицию. Грант упомянул, чтоб объяснить, почему не приму ссылки на авторитет.
Цитата Сообщение от Evg Посмотреть сообщение
Когда человек говорит, что не понял вопроса, можно поступить двумя способами:
Ты что ни разу не сталкивался с кроскомпиляцией (с компиляцией под одной осью проги для другой оси)? Что тебе объяснять? Всё не только разжёвано, но проглочено, переварено и всосано в кровь, а ты по сосудам разогнать ленишься.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
25.12.2009, 10:16
Цитата Сообщение от taras atavin Посмотреть сообщение
Я хочу сказать, что между любыми двумя частями проги связь быть должна , но она должна быть минимально возможной исходя из особенностей задачи в целом. Если связи нет совсем - разноси по разным прогам. Если связь сильнее, чем могла бы быть - переделай декомпозицию. Грант упомянул, чтоб объяснить, почему не приму ссылки на авторитет.
Так речь примерно об этом шла изначально. Как-то у нас похоже на разговор слепого и глухого

Цитата Сообщение от taras atavin Посмотреть сообщение
Ты что ни разу не сталкивался с кроскомпиляцией (с компиляцией под одной осью проги для другой оси)? Что тебе объяснять? Всё не только разжёвано, но проглочено, переварено и всосано в кровь, а ты по сосудам разогнать ленишься.
Кросскомпиляция это не между осями, а между платформами (i386-linux и i386-windows являются разными платформами). При такой постановке вопроса будет такой же идиотский ответ: устанавливаешь под винду кросс-компилятор и компилируешь программу. По другому оветить не могу по той же банальной причине: не могу понять, в чём вопрос состоит (или это не вопрос, а утверждение, которое я принимаю за вопрос)
0
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
25.12.2009, 10:23
Цитата Сообщение от taras atavin Посмотреть сообщение
виндузовая программа под линухом не будет работать
Будет обычным вайном, который не эмулятор. Но мне нужно не это.

Добавлено через 5 минут
Цитата Сообщение от Evg Посмотреть сообщение
Кросскомпиляция это не между осями, а между платформами (i386-linux и i386-windows являются разными платформами).
Крос изначатьно - это под другие архитектуру/камень не совместимые с исходной. При этом ось тоже меняется. Кросплатформенные проги должны работать под униксом и виндой. Опять крос. Но i386-linux и i386-windows различаются именно осью, а архитектура/камень одни.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
25.12.2009, 14:02
Цитата Сообщение от taras atavin Посмотреть сообщение
Крос изначатьно - это под другие архитектуру/камень не совместимые с исходной. При этом ось тоже меняется. Кросплатформенные проги должны работать под униксом и виндой. Опять крос. Но i386-linux и i386-windows различаются именно осью, а архитектура/камень одни.
Hello world, написанный при помощи printf'а или cout'а будет работать на любой архитектуре. В этом отношении программа является кроссплатформенной. Хотя термин "кроссплатформенность" по большому счёту некоррекнтый, но этим термином обзывают исходники программ, которые способно рыботать сразу на нескольких (или всех) системах.

В общем, если ты хочешь мне что-то объяснить про "кроссы", то не надо, ибо я знаю. Вернёмся к первоначальному вопросу

Преположим, я захочу компилить под одной осью, а гонять под другой. Как из-под мелклсофта происать определение под Linuxом? Какие головы стырить, какие и как написать, какой код вызывает запрос?
Я всё равно ничего и не понял
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2009, 14:02
Помогаю со студенческими работами здесь

Написание программ для сервисов Теория
Здравствуйте, возник вопрос, я изучаю qt и стало интересно, как пишутся программы клиенты для различных сервисов, например инстаграмма или...

Написание компилятора для С++ программ в блокноте
Приветствую. Такой вопрос, можно ли написать bat файл который являлся бы компилятором для С++(нормальные среды разработки у меня есть,...

Написание программ на заказ для компьютеров и микроконтроллеров
Программист (удаленный работник) оказывает (принимает заявки на разработку и написание программ на заказ) услуги: 1. Написание программ...

Написание программ для OS Andriod 4. С чего начать?
Почитал много статей про написание программ под смартфоны на Андроиде и слегка запутался. 1) Я так понял основной язык для написания...

Лучший инсталлятор для программ на Borland C++ Builder 6.
Какой инсталятор лучше всего использовать для программ написанных на Borland C++ Builder 6. Спасибо.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru