На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Windows
1. Указывайте версию Вашей ОС.
2. Запрещается размещать запросы и ссылки на кряки, серийники и т.п., а также вопросы нарушения лицензии ПО и его взлома.
3. Не разрешается давать советы из разряда "Поставь Linux".
4. Переустановка ОС - крайнее и безотказное лекарство, которое знают все. В таких советах никто не нуждается.
5. При публикации скриптов пользоваться тегами code. Тип подсветки кода выбирать строго в соответствии с языком публикуемого кода.
6. Прежде чем задать вопрос, обязательно загляните в FAQ и следуйте написанным рекомендациям для устранения проблемы. И если не помогло, а поиск по разделу не дал результатов - только тогда задавайте вопрос на форуме.
7. Вопросы, связанные с проблемами ПО, задавайте в разделе Программное обеспечение
Модераторы: Akina
  
> Существует ли программа, которая из 4 виртуальных ядер делает одно виртуальное? , Windows XP.
    Есть прога, умеет пользоваться только 1 ядром. Process Lasso дает ей доступ ко всем ядрам - но она берет только одно.

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

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

      Программа - это порядок этих команд, скажем, очередь. От выполнения одной команды зависит какими данными будет располагать следующая.
      Если у системы 2, 8, да хоть 128 процессоров, все они работают параллельно, но с одинаковой частотой!

      А значит другой процессор для ускорения выполнения задач в системе может выполнять что-то другое.
      Одну и ту же программу по кускам всеми потоками выполнять нельзя, получится хрень.
      Исключением является разделение на потоки, когда программист решает как разделить задачу так, чтобы ее могли выполнять два, десять процессоров...
      И контролирует сбор результатов их выполнения.

      Так же считается, что процессор с 2 ядрами и частотой 3.2 быстрее процессора с 8 ядрами и частотой 1.6.
      Сообщение отредактировано: simsergey -
        Цитата simsergey @
        Так же считается, что процессор с 2 ядрами и частотой 3.2 быстрее процессора с 8 ядрами и частотой 1.6.

        "Так же считается, что процессор с 2 ядрами и частотой 3.2 быстрее процессора с 8 ядрами и частотой 1.6. " - а вот это совсем не понял...
          Наверняка подразумевалось 4 ядра, а не 8. Или как?
            Цитата Славян @
            Наверняка подразумевалось 4 ядра, а не 8. Или как?

            Да пусть хоть 8, хоть 2. Все равно программа занимает только 1 ядро винды. Реальное/виртуальное - не важно.
              Цитата Сергей85 @
              вот это совсем не понял...
              Если в той фразе всё же 4 ядра, то идея такая: хоть и 2*3,2 = 6,4 = 4*1,6 но всё же задачу ещё надо разбросать на эти ядра, плюс всякая синхронизация, сбор данных из этих разных ядер, что выльется (в среднем) в небольшое проигрывание 4-рёх медленных ядер двум быстрым.
                Цитата Славян @
                Если в той фразе всё же 4 ядра, то идея такая: хоть и 2*3,2 = 6,4 = 4*1,6 но всё же задачу ещё надо разбросать на эти ядра, плюс всякая синхронизация, сбор данных из этих разных ядер, что выльется (в среднем) в небольшое проигрывание 4-рёх медленных ядер двум быстрым.
                Хорошая догадка :)

                Я просто хотел сказать, что для однопоточного приложения важнее скорость процессора, чем количество его ядер.
                Сергей85, нет в природе программы, которая делает то, что Вы хотите. И быть не может.

                Исключением является VirtualBox, было замечено за ним некое ускорение работы, если на многоядерной машине создать виртуальную машину с одним ядром, то софт внутри этой виртуалки шевелится побыстрее. Научного объяснения этому феномену не могу дать, т.к. нет цифр для сравнения.

                А можно поинтересоваться, чем занимается таким программа, что загружая ядро на 100% она не успевает сделать то, что нужно?
                Мимо меня проходило не мало программ, и они в реальном времени обрабатывали задачи, загружая ядро на несколько процентов..
                  Цитата Сергей85 @
                  Есть прога, умеет пользоваться только 1 ядром. Process Lasso дает ей доступ ко всем ядрам - но она берет только одно.

                  Как сделать так, чтобы прога думала, что 4 ядра - одно --- и загрузило весь проц на максимум?

                  Переписать программу, добавив поддержку многоядерности. Если исходников нет, можно запустить 4 копии программы параллельно: каждая копия будет считать свою независимую задачу.
                    Цитата simsergey @
                    VirtualBox, было замечено за ним некое ускорение работы, если на многоядерной машине создать виртуальную машину с одним ядром, то софт внутри этой виртуалки шевелится побыстрее.
                    Это скорее всего за счёт того, что программная эмуляция некоторой аппаратуры работает быстрее, чем сама эмулируемая аппаратура. Обычно за счёт того, что эмулируемые задержки меньше, чем реальные. На одной из версий была ошибка с установкой W2K из-за того, что установщик не мог дождаться установки какого-то флага, поскольку тот успевал подняться и сняться до того, как установщик начинал его опрашивать.
                    Цитата Pacific @
                    можно запустить 4 копии программы параллельно: каждая копия будет считать свою независимую задачу.
                    Я обычно, чтобы с многопоточностью не возиться, именно так и поступаю. Пишу программу в один поток, и запускаю несколько копий в-параллель, каждую со своими данными. Главное, чтобы у них ввода-вывода было не слишком много.
                      [QUOTE=simsergey,1483381310,3700639][quote=Славян,1483380616,3700637]

                      Исключением является VirtualBox, было замечено за ним некое ускорение работы, если на многоядерной машине создать виртуальную машину с одним ядром, то софт внутри этой виртуалки шевелится побыстрее. Научного объяснения этому феномену не могу дать, т.к. нет цифр для сравнения.[/QUOTE]
                      Генерация чисел по определенным алгоритмам программа делает.

                      А о виртуалбоксе - дело не в ядрах, а, действительно, в эмуляции. Винда ставится на одном и том же одноядерном ПК медленнее, чем на виртуалбоксе в нем самом.

                      Добавлено
                      "можно запустить 4 копии программы параллельно: каждая копия будет считать свою независимую задачу." - так и придется.
                        Цитата Сергей85 @
                        Как сделать так, чтобы прога думала, что 4 ядра - одно --- и загрузило весь проц на максимум?

                        В общем случае никак.

                        Добавлено
                        Цитата simsergey @
                        то софт внутри этой виртуалки шевелится побыстрее

                        Делал именно так. Заметного "ускорения" не увидел.
                        Сообщение отредактировано: shm -
                          Цитата shm @
                          Делал именно так. Заметного "ускорения" не увидел.
                          Там ускорение небольшое, и, главное, не постоянное. Иногда работает так же, иногда чуть быстрее или медленнее, практически незаметно. А иногда такое ускорение/замедление заметно даже на глаз. Замедление от виртуалки вполне ожидаемо, поэтому на него внимания обычно не обращают. А вот ускорение запоминается.
                            А для чего это нужно?
                            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                            0 пользователей:


                            Рейтинг@Mail.ru
                            [ Script execution time: 0,0396 ]   [ 15 queries used ]   [ Generated: 2.05.24, 12:49 GMT ]