Excel использует только одно ядро

33 / 67 / 10

Регистрация: 07.06.2013

Сообщений: 507

Записей в блоге: 1

1

09.03.2016, 09:45. Показов 12638. Ответов 4


Студворк — интернет-сервис помощи студентам

Может и не сюда, но вроде бы правильно ветку выбрал…
Столкнулся с проблемой что при работе в Excel x64 он нагружает только одно ядро и дело доходит до 100%, раньше как то не сильно обращал внимание сколько ядер задействовано, но вот надо было обработать таблицу где то 100 мб (0,5 млн строк).
Может где какую опцию надо включить? что бы нагрузка распределялась на все ядра.

Миниатюры

Excel x64 загружает на 100% одно ядро
 

Excel x64 загружает на 100% одно ядро
 



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

09.03.2016, 09:45

Ответы с готовыми решениями:

Одно ядро 100%
Доброго времени суток! Дело такое:
Имеется компьютер, скажем, околоигровой
Мать — A320, сокет AM4…

Грузится одно ядро на 100%
Подскажите пажайлуста,почему так происходит? Грузится одно ядро на 100% Процессор Intel Core2…

Одно ядро загружено на 100%, второе отдыхает
Здравствуйте. Проблема такая, одно ядро полностью загруженно под 100% второе отдыхает. На вирусы…

Не работает одно ядро
Сегодня обнаружил что у меня не работает одно ядро, в диспетчере задач отображается только одно…

4

14340 / 6168 / 327

Регистрация: 03.07.2010

Сообщений: 20,691

09.03.2016, 09:55

2

bort-747, общая загрузка ЦП = 22%

чего переживаете ?



0



33 / 67 / 10

Регистрация: 07.06.2013

Сообщений: 507

Записей в блоге: 1

10.03.2016, 10:39

 [ТС]

3

Мои переживания связаны не с тем что нагрузка на ядро 100%, а с тем что excel x64 работает только с одним ядром, кстати когда работает только одно ядро на максимум оно греет весь кристалл.
В итоге приложение зависает и данные не обрабатываются.



0



14340 / 6168 / 327

Регистрация: 03.07.2010

Сообщений: 20,691

10.03.2016, 10:43

4

bort-747, приложение «адаптировано» на — «многопоточность»?
Вам, лучше к знатокам по — Excel.

Добавлено через 2 минуты
http://office-guru.ru/excel/ka… 13-57.html
оно?
Я, профан в Excel(не судите строго).



1



33 / 67 / 10

Регистрация: 07.06.2013

Сообщений: 507

Записей в блоге: 1

10.03.2016, 21:49

 [ТС]

5

Это оно, в субботу вечером попробую пересчитать свою таблицу, отпишусь о решении
Хотя у меня стояло автоматом, сейчас принудительно поставил 8



0



  • honor8

Я работаю с большими файлами в excel
Вот что происходит в момент, когда я пытаюсь удалить разом 50 000 строк.
Q2KokgKSvN1L12.jpg
Вся нагрузка идет только на одно ядро, а остальные не телятся.
Вопрос — можно ли это исправить — или «excel — такой excel, пользуйся другими программами?»

P.S. В настройках включены многопоточные вычисления для формул. Но насколько я понимаю — это другой тип задачи (удаление строк)


  • Вопрос задан

    более года назад

  • 628 просмотров

Пригласить эксперта

Не все задачи можно распараллелить. И не все программы это умеют. В вашем случае — разве что пинать разработчиков Excel

Как минимум проверить разрядность офиса. Если он 32 бит, то больше одного ядра использовать не будет.
64х битный офис в помощь, хотя и проца одного мало для больших вычеслений, вычисления формул привязаны еще к объему памяти и неплохо бы SSD (хотя он для всего не плох ))))


  • Показать ещё
    Загружается…

14 апр. 2023, в 01:55

1000 руб./в час

13 апр. 2023, в 23:50

3000 руб./за проект

13 апр. 2023, в 23:18

1000 руб./за проект

Минуточку внимания

Все ниже относится к Excel 2007 и более ранним версиям. Согласно ссылке @ Ƭᴇcʜιᴇ007, размещенной в комментариях выше, в Excel 2013 имеется некоторая встроенная поддержка многопоточности. Тем не менее, предупреждение просто забыть об этом, если вы не опытный программист, по-прежнему применяется.

К сожалению, VBA не поддерживает многопоточность, поэтому ваши вычисления VBA будут ограничены одним ядром вашего процессора.

Однако существует продвинутый метод обмана VBA для запуска нескольких потоков путем генерации файлов VBscript и их одновременного выполнения. Это позволяет обойти эту проблему, запустив ваш код вне процесса Excel и позволяя Windows управлять ресурсами, выделенными различным потокам.

Тем не менее, заставить его работать, скорее всего, будет означать полное переосмысление логики вашего кода (то есть вам придется выяснить, как разделить задачи таким образом, чтобы они выполнялись одновременно), что может очень хорошо быть невозможным для вашего проекта. Я никогда не реализовывал это сам, поэтому я не могу помочь вам с этим больше, чем рассказывать вам то, что я уже сказал вам.

Если вы хотите проникнуть в кроличью нору, вот вам интересное сообщение в блоге, которое показывает пример того, как это делается. Имейте в виду: если вы не являетесь опытным программистом, вы можете также забыть эту идею и просто признать, что VBA работает в одном потоке.

Другие ресурсы по переполнению стека для смелых:
https://stackoverflow.com/q/19159025/657668
https://stackoverflow.com/q/5721564/657668

Есть, конечно, другие способы оптимизировать код VBA без использования нескольких потоков. Не видя ваш код, невозможно сделать точные предложения, но вот пара обычных подозреваемых:

  • Загрузите данные из вашего листа в массив для более быстрой обработки. Взаимодействия с рабочим листом являются основным узким местом в исполнении VBA, и их можно минимизировать, работая с массивами.
  • С этим связана проблема, когда Excel пересчитывает рабочую книгу после каждого изменения ячейки. Этого можно избежать, установив Application.Calculation = xlManual . Просто не забудьте установить его обратно в Application.Calculation = xlAutomatic перед выходом из вашего Sub.

Содержание

  1. Excel works!
  2. Excel works!
  3. Почему виснет Excel? Использование 25% процессора
  4. Excel использует 25% ресурсов процессора. Как исправить?
  5. Как задействовать все процессоры. Настройка Windows
  6. Не помогло, все равно виснет Excel… Еще причины
  7. Научный форум dxdy
  8. Многоядерный процессор и Excel
  9. Кто сейчас на конференции
  10. Excel использует только одно ядро процессора
  11. VBA на Excel использует только один процессор, как я могу использовать больше?

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Почему виснет Excel? Использование 25% процессора

В этой статье мы рассмотрим вопрос оптимального использования Excel’ем ресурсов компьютера. Ведь даже если файл оптимизирован, бывает, что все равно виснет Excel. Почему? Можно сказать, что этот материал продолжение нашумевшей статьи «Почему тормозит Excel?«, в которой мы описывали все возможные проблемы именно внутри файлов Excel. Сейчас поговорим об оптимизации работы вашего ПК при работе с таблицами.

В большинстве случаев виной тормозов и зависаний Excel служит не оптимальное оформление, структура, данные файла, но бывает что и ресурс компьютера не задействован в полной мере. Например, процессор используется на 25%. Ниже мы предлагаем несколько вариантов, которые точно не помешает проверить если у вас виснет Excel.

Excel использует 25% ресурсов процессора. Как исправить?

Современные компьютеры очень производительны, что позволяет работать в режиме многозадачности и работать в нескольких программах одновременно. Для того, чтобы Excel не занимал все ресурсы компьютера, у версий табличного редактора начиная с 2007 есть специальная настройка — Включить многопоточные вычисления. Проверьте включена ли она и задействована ли у вас полная мощность процессора.

Для этого зайдите в круглую кнопку Office (левый верхний угол) — Параметры Excel — найдите раздел Дополнительно — подраздел Формулы. См. первую картинку.

Проверьте, чтобы у вас стояла галочка «использовать все процессоры данного компьютера».

Можно так же принудительно поставить максимальное количество — в данном случае 4. Для некоторых расчетов может выручить. Я обращал внимание, что, например, при сортировке больших таблиц часто используется только 1 процессор из 4 (по умолчанию), отсюда, кстати, и 25% использования процессоров, о котором часто упоминается. Установив принудительно максимальное количество задействованных потоков, вы уберете эту проблему.

Для включения функции многопоточных вычислений в VBA используйте команду:

Кстати, отключить полное задействование тоже полезно, особенно, если вы выполняете параллельно несколько задач, а табличный редактор не в приоритете.

Как задействовать все процессоры. Настройка Windows

Кстати, не только Excel может ограничить количество процессоров в работе. В Windows тоже есть такая возможность.

Для того, чтобы проверить настройку Windows, нажимаем Пуск — Выполнить — вводим команду msconfig — заходим на вкладку Загрузка — Дополнительные параметры..

Убедитесь, что число процессоров не задано вручную на минимальном уровне, или галочка не установлена и система по умолчанию использует максимум ресурсов.

Не помогло, все равно виснет Excel… Еще причины

  • Если у вас открыты несколько книг Excel, то расчет происходит по всем измененным ячейкам во всех открытых книг. По возможности закройте ненужные книги.
  • Если у вас по-настоящему большие таблицы (

0,5 млн строк и больше) и/или сложные вычисления, то лучше использовать PowerPivot. Которому мы скоро посветим большую рубрику!

  • Постарайтесь закрыть другие программы, которые забирают много оперативной памяти. Google Chrome самый распространенный замедлитель расчетов в Excel.
  • Установите Excel 2010 или 2013, в нем действительно хорошо потрудились над улучшением скорости вычислений. Мой опыт показывает, что ускорение достигает 2-3 раз для некоторых файлов, в первую очередь за счет асинхронного вызов а функций.
  • Не забывайте отключать автообновления экрана во время вычислений макросом
  • Если эти методы вам не помогли, проверьте также способы, предложенные в этой статье Почему тормозит Excel?

    Остались еще вопросы? Пишите их в комментариях под статьей!

    Источник

    Научный форум dxdy

    Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
    Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки

    Вход Регистрация Donate FAQ Правила Поиск

    Многоядерный процессор и Excel

    Уважаемые форумчане, доброго времени суток.

    Есть такой вопрос:
    Имеется:
    1) Компьютер с процессором на 8 ядер.
    2) Оперативная память 16 Гб.
    3) Винчестер твердотельный.
    2) Windows 8 x64.
    3) Excel 2013 x64 (В настройках стоит использовать для вычислений все ядра процессора).

    В Excel выполняется замена связей с одной книги на другую (файлы объемные). Замена производится через инструмент: Данные->Изменить связи.

    В итоге Excel грузит процессор максимум на 20% и процесс длиться достаточно долго (Диспетчер задач показывает, что при этом выполняется порядка 40 потоков).
    Оперативная память и жесткий диск так же не перегружены (причем загрузка так же порядка 20-25%).
    Во время изменения связей компьютер работает нормально, никаких признаков загруженности.

    Вопрос:
    Почему Excel не использует больше ресурсов процессора?

    Мои предположения:
    1) В Windows стоит ограничение на загрузку процессора одним приложением.
    2) Все же что-то не то с настройками Excel, вне зависимости от галочки использовать все ядра.
    3) Алгоритм замены связей не адаптирован под многоядерное вычисление и реализован только в одном потоке (по моим оценкам наиболее вероятный вариант).

    Прошу помочь разобраться в проблеме.

    Legioner93
    Заслуженный участник

    Последний раз редактировалось Legioner93 14.05.2013, 14:58, всего редактировалось 1 раз.

    Сразу так и подумал.
    Недавно на каком-то IT ресурсе читал интервью маститого разработчика Windows на протяжении долгого времени. Там упоминалось, в частности, что им абсолютно начхать на оптимизацию.

    — Вт май 14, 2013 15:58:08 —

    Taus

    Страница 1 из 1 [ Сообщений: 3 ]

    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей

    Источник

    Excel использует только одно ядро процессора

    У меня на четырехъядерном ноутбуке Acer Aspire S3 работает программа VBA. Проблема в том, что он использует только 25% процессорного времени (остальные процессы в совокупности используют

    1%). Ноутбук работает под управлением Windows 8.0. Выпуск Excel — 2013 (32-разрядная версия). Используется только 55% оперативной памяти, в то время как Excel использует половину из 55%.

    Я думаю, может быть, используется только 25%, потому что Excel использует только одно ядро. Однако у меня нет ничего, чтобы поддержать эту теорию. Как я могу ускорить программу?

    1000 раз, портируя некоторый код, требующий большого объема вычислений, из (Excel 03) VBA в C #:

    15 секунд. Один и тот же алгоритм в обоих случаях; и VBA уже получил 5-10-кратное ускорение по сравнению с простой реализацией, кэшируя значения в переменные вместо того, чтобы каждый раз читать ячейку и отключая обновление таблицы на экране каждый раз, когда ячейка изменялась во время вычисления. Dan Neely 8 лет назад 2

    Everything below applies to Excel 2007 and earlier. According to the link @Ƭᴇcʜιᴇ007 posted in the comments above, there is some native support for multithreading in Excel 2013. That said, the warning to just forget it unless you are an experienced programmer still applies.

    Unfortunately, VBA does not support multithreading, so your VBA calculations will be limited to one core of your processor.

    However, there is an advanced method of tricking VBA into running multiple threads by generating VBscript files and executing them concurrently. This gets around the problem by running your code outside the Excel process and allows Windows to manage the resources allocated to the different threads.

    That said, getting this to work will more than likely mean completely rethinking the logic of your code (i.e., you’ll have to figure out how to divvy up the tasks in a way that makes sense for them to run concurrently), which may very well be unfeasible for your project. I’ve never implemented this myself, so I can’t really help you with this any more than by telling you what I’ve already told you.

    If you wish to step into the rabbit hole, though, here’s an interesting blog post that shows an example of this being done. Be warned: unless you are an accomplished programmer, you might as well forget this idea and just accept that VBA runs in a single thread.

    There are of course other ways to optimize your VBA code without using multiple threads. Without seeing your code, it’s impossible to make pointed suggestions, but here are a couple of the usual suspects:

    • Load data from your sheet into an array for faster processing. Interactions with the worksheet are a major bottleneck in VBA execution, and they can be minimized by working with arrays.
    • A related issue is Excel recalculating the workbook after each change made to a cell. This can be avoided by setting Application.Calculation = xlManual . Just be sure to set it back to Application.Calculation = xlAutomatic before exiting your Sub.

    I sounds like the program you’re trying to use is single threaded, meaning it can only use a single core, it doesn’t know the others exist. There really isn’t a concrete way to speed this up except to buy a processor with a faster single core clock speed or use a program that supports multi-threading.

    Like others said, natively VBA is not multithreaded. If you want to speed up you may want to consider writing user defined functions (UDF) in another language.

    I would recommend you ExcelDNA and using C# or VB.Net. They are very easy to use if you already know how to write some C# and you can control multithreading within the UDF.

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

    Похоже, ваш VBA-скрипт использует только одно ядро, и это может быть хорошо!

    Как уже упоминали другие в хороших ответах, я думаю, что важно знать другие аспекты этого вопроса, чтобы помочь вам найти подходящее решение. Так как ты ускоряешь программу?

    • 100% использование процессора в обзоре системы не означает, что ваша программа работает так быстро, как может : возможно, будет сделано много бесполезных вещей, попробуйте поискать «Оптимизация скорости VBA». Любой хороший поисковик даст вам несколько полезных ответов из сети Stack Exchange. Идите на время, потраченное на расчеты, а не на использование процессора.
    • VBA в Excel не обязательно является лучшим инструментом для выполнения работы : для длительных вычислений, вычисляющих числа, может быть полезно экспортировать данные из Excel и использовать другую платформу, в зависимости от ваших навыков программирования. Есть очень много на выбор, некоторые из них прекрасно интегрируются с платформой Microsoft и имеют значительно лучшую достижимую производительность ( выполнение бесполезных вещей также применимо и здесь).
    • Запуск 100% CPU, вероятно, не даст вам 4-кратное увеличение скорости по сравнению с только 25% : в зависимости от того, насколько хорошо вы разбьете свои вычисления, вы можете добиться всего лишь 2-кратного повышения на 4 ядрах. Но есть случаи, которые приводят к почти 4-кратному увеличению на 4 ядрах — например, если вычисление, выполняемое для каждой строки, полностью не зависит от каких-либо других данных в вашей электронной таблице. Смотрите закон Амдала о Википедии.
    • Возможно, не стоит пытаться использовать больше ядер : хотя в некоторых случаях это может быть полезно, сделать расчет более чем одним ядром может быть (и обычно бывает) на порядок сложнее, требуя некоторого тщательного опыта в методы программирования (см. этот вопрос для общего обзора).
    • Бонус: Возможно, вам вообще не нужно ускорять вашу программу. Если расчет занимает, скажем, три минуты, а вы запускаете его только один раз в день, почему бы не подняться со стула на некоторое время и не напрячь свои жесткие кости? Вы рискуете потратить дни на настройку вашей программы, чтобы иметь возможность запустить ее за две минуты тридцать, что окупается лишь в очень длительной перспективе. Хороший программист тратит время на оптимизацию только тогда, когда это действительно того стоит, поэтому позвольте себе вдохновляться хорошими программистами 🙂

    Источник

    VBA на Excel использует только один процессор, как я могу использовать больше?

    Известно, что VBA работает только с одним процессором одновременно, поэтому, когда я запускаю макрос, Excel использует только 50% процессора вместо полностью двухъядерного.

    Есть ли обходной путь, чтобы заставить VBA использовать оба процессора?

    Вы можете разделить проблему на несколько экземпляров Excel.Applications, таким образом вы могли бы сделать половину в одной копии Excel и половину в другой.

    Я видел, как кто-то симулировал работу в Excel VBA с использованием 8 ядер. Немного боль, чтобы вернуть результаты в конце, но это сработало.

    Ответ не будет, если вы не разделите рабочую нагрузку на несколько экземпляров Excel и не перекомпилируете результаты в конце.

    Но подавляющее большинство случаев медленного выполнения VBA можно ускорить на порядок:

    • отключить обновление экрана
    • установить расчет вручную
    • читать и записывать данные excel с использованием больших диапазонов и вариантов массивов, а не по ячейкам
    • внимательно посмотрите на кодирование в VBA UDF и обходите ошибку обновления VBE
    • минимизировать количество вызовов модели объекта Excel

    В Excel 2010
    Перейдите в меню Файл → Параметры → Дополнительно.
    Прокрутите вниз до тех пор, пока вы не увидите раздел Формулы, и вы можете установить количество процессоров, которые будут использоваться при вычислении формул.
    Это может не повлиять на VBA, но оно будет работать для запуска формулы по всей колонке. Его большая экономия времени при работе с большими книгами. Кроме того, вы можете перейти к диспетчеру задач и щелкнуть правой кнопкой мыши по excel и установить приоритет на высокий, чтобы ваша машина фокусировала свою энергию там.

    Источник

    В этой статье мы рассмотрим вопрос оптимального использования Excel’ем ресурсов компьютера. Ведь даже если файл оптимизирован, бывает, что все равно виснет Excel. Почему? Можно сказать, что этот материал продолжение нашумевшей статьи «Почему тормозит Excel?«, в которой мы описывали все возможные проблемы именно внутри файлов Excel. Сейчас поговорим об оптимизации работы вашего ПК при работе с таблицами.

    Почему виснет Excel

    В большинстве случаев виной тормозов и зависаний Excel служит не оптимальное оформление, структура, данные файла, но бывает что и ресурс компьютера не задействован в полной мере. Например, процессор используется на 25%. Ниже мы предлагаем несколько вариантов, которые точно не помешает проверить если у вас виснет Excel.

    Содержание

    • Excel использует 25% ресурсов процессора. Как исправить?
    • Как задействовать все процессоры. Настройка Windows
    • Не помогло, все равно виснет Excel… Еще причины
    • Похожие статьи

    Excel использует 25% ресурсов процессора. Как исправить?

    Современные компьютеры очень производительны, что позволяет работать в режиме многозадачности и работать в нескольких программах одновременно. Для того, чтобы Excel не занимал все ресурсы компьютера, у версий табличного редактора начиная с 2007 есть специальная настройка — Включить многопоточные вычисления. Проверьте включена ли она и задействована ли у вас полная мощность процессора.

    Для этого зайдите в круглую кнопку Office (левый верхний угол) — Параметры Excel — найдите раздел Дополнительно — подраздел Формулы. См. первую картинку.

    Проверьте, чтобы у вас стояла галочка «использовать все процессоры данного компьютера».

    Можно так же принудительно поставить максимальное количество — в данном случае 4. Для некоторых расчетов может выручить. Я обращал внимание, что, например,  при сортировке больших таблиц часто используется только 1 процессор из 4 (по умолчанию), отсюда, кстати, и 25% использования процессоров, о котором часто упоминается. Установив принудительно максимальное количество задействованных потоков, вы уберете эту проблему.

    Для включения функции многопоточных вычислений в VBA используйте команду:

    Application.MultiThreadedCalculation.Enabled = True 

    Кстати, отключить полное задействование тоже полезно, особенно, если вы выполняете параллельно несколько задач, а табличный редактор не в приоритете.

    Как задействовать все процессоры. Настройка Windows

    Кстати, не только Excel может ограничить количество процессоров в работе. В Windows тоже есть такая возможность.

    Для того, чтобы проверить настройку Windows, нажимаем Пуск — Выполнить — вводим команду msconfig — заходим на вкладку Загрузка — Дополнительные параметры..

    Виснет Эксель 2

    Убедитесь, что число процессоров не задано вручную на минимальном уровне, или галочка не установлена и система по умолчанию использует максимум ресурсов.

    Не помогло, все равно виснет Excel… Еще причины

    • Если у вас открыты несколько книг Excel, то расчет происходит по всем измененным ячейкам во всех открытых книг. По возможности закройте ненужные книги.
    • Если у вас по-настоящему большие таблицы (~0,5 млн строк и больше) и/или сложные вычисления, то лучше использовать Power Pivot. Которому мы скоро посветим большую рубрику!
    • Постарайтесь закрыть другие программы, которые забирают много оперативной памяти. Google Chrome самый распространенный замедлитель расчетов в Excel.
    • Установите Excel 2010 или 2013, в нем действительно хорошо потрудились над улучшением скорости вычислений. Мой опыт показывает, что ускорение достигает 2-3 раз для некоторых файлов, в первую очередь за счет асинхронного вызов а функций.
    • Не забывайте отключать автообновления экрана во время вычислений макросом
      Application.ScreenUpdating = False

    Если эти методы вам не помогли, проверьте также способы, предложенные в этой статье Почему тормозит Excel?

    Остались еще вопросы? Пишите их в комментариях под статьей!

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Excel использовать системные разделители excel
  • Excel информация при активной ячейке
  • Excel использовать результат вычисления в формуле
  • Excel информация для презентации
  • Excel использовать имена таблиц в формулах

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии