Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как выполнять приложение только на одном ядре?  (Прочитано 5413 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SergER

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Ситуация следующая. Есть программа, которая работает корректно только на одноядерных процессорах. Есть комп с двухъядерным процом. ОС Ubuntu 8.04.2
Как заставить прогу запускаться только на одном ядре? Или как заставить Ubuntu видеть только одно ядро? В винде подобная проблема решалась двумя кликами мыши, а здесь?...
К сожалению, в биосе нет возможности отключить ядро:( хотя я уже согласен и на такое

Lifewalker

  • Гость
В моём миропонимании наступил крандец. Корректно на одном ядре это как? Не буду строить ни малейших предположений, просто хочется понять, как это бывает....

Оффлайн kostryukov

  • Старожил
  • *
  • Сообщений: 1588
  • everybody lies
    • Просмотр профиля
    • kostryukov.net
опиши как ты в винде двумя кликами мыши отключаешь ядро ?Оо
у меня можно спросить=)

Оффлайн Lion-Simba

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
На общесистемном уровне - добавить к опциям ядра при загрузке:
nosmp
или
maxcpus=0

Но вообще-то действительно странная программа.

Я бы еще понял, если бы это был драйвер, работающий напрямую с процессором.

Но если это некорректно написанная многопоточная программа, то отключение ядра ей не поможет - ведь система от этого не становится однозадачной: в ней всё так же можно порождать параллельные потоки, которые могут повредить данные смежных потоков при неправильном использовании.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн SergER

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Lifewalker - а х.з. как оно происходит:( Но факт остается фактом - корректно работает только на одноядерных процах. Пробовал даже запустить эту прогу на одном и том же компе (ноут HP 6710), сначала с двумя работающими ядрами - прога падала через несколько секунд после старта, а потом в биосе отключил "двухъядренность" - все работает без проблем
kostrukov - хоть и оффтоп, но все же отвечу на ваш вопрос. В диспетчере задач винды на вкладке "Процессы" - нажать на нужном процессе правой кнопкой и выбрать пункт "Задать соответствие...", появляется окно с чекбоксами "ЦП<n>", n = количество ядер - 1. Дальше интуитивно понятно:)
Lion-Simba - спасибо, вы опять помогли:)

Lifewalker

  • Гость
Совершенно не уверен, что поможет, но копаясь в глубинах памяти вспомнил вот чего.
Во FreeBSD есть такое понятие как "класс пользователя". В нём задаётся всякая мишура вроде локали прочей мелочи. Но кроме того, в классе пользователя указывается максимальные ресурсы, которые он может потреблять: память, процессорное время и так далее. Совершенно не уверен, есть ли подобный механизм в Linuxе и если есть, то как работает и поможет ли.
Но, думаю, это может быть хоть какой-то зацепкой. Если получится - отпишитесь, пожалуйста.

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Не в тему, но, может, кому да поможет =)
man taskset

Оффлайн KTATTOO

  • Активист
  • *
  • Сообщений: 263
    • Просмотр профиля
    • Студия художественной  татуировки в г.Каменске-Уральском
Для начала, что за прога такая? Название фстудию!!!!
Далее! Не знаю уж как там система без одного ядра работает, скорее всего она и устанавливалась когда работало одно ядро, выньда привязывается к железу так что думаю копать нужно от сель...

Да и вообще ты сначала попробуй запустить прогу а потом уже спрашивай! У тебя ее может и с одним и с пол ядром не получится запустить под вайном, а ты тут мозги морочишь!
Бью по попам вгоняя краску

Оффлайн SergER

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
Итак, продолжение истории. Вариант, предложенный Lion-Simba - как бы помог... программа запускается, не падает, на первый взгляд все хорошо, но... при загрузке с этими опциями на моей машине перестает работать сеть :-\ Смотрю в свойствах подключения - исходящих пакетов 0, входящие пакеты - несколько десятков... Чтобы было наоборот - видел, а так как у меня сейчас - никогда. Полный бред, короче.
Так что этот вариант отпадает...

KTATTOO, если не знаешь основ, не понимаешь как работает система и что к чему привязывается - зачем что-то советовать и чего-то требовать? Внимательно читай тему, все уже описано и рассказано. Про вайн - спасибо, смИшно :2funny:

По теме - совет Saha вроде бы помог. Запуск программы выполнил через taskset примерно таким образом:
taskset 1 ./program arg1 arg2Программа работает на первом процессоре, аргументы arg1 и arg2 воспринимаются без проблем, падений пока нет. Посмотрю еще, если что будет не так - завтра-послезавтра отпишусь.

Оффлайн KTATTOO

  • Активист
  • *
  • Сообщений: 263
    • Просмотр профиля
    • Студия художественной  татуировки в г.Каменске-Уральском
 :idiot2: да и ваще в висте только появилась поддержка многоядерных процов... я наверно точно не фтеме...  :idiot2:
Бью по попам вгоняя краску

Оффлайн SergER

  • Автор темы
  • Новичок
  • *
  • Сообщений: 17
    • Просмотр профиля
[offtop]наверно действительно не в теме. На домашнем компе двухъядерный проц Athlon64 x2 5000 успешно трудится всеми своими двумя:) ядрами, хотя ОС - XP sp3 (или sp2, не помню уже)[/offtop]

Lifewalker

  • Гость
:idiot2: да и ваще в висте только появилась поддержка многоядерных процов... я наверно точно не фтеме...  :idiot2:

Не просто не в теме, а очень-очень не в теме. В Винде поддержка многопроцессорных (а стало быть и многоядерных) конфигураций была отродясь, начиная с Windows NT с 1993 году. Это так, для истории замечаю.

Оффлайн alecsartania

  • Старожил
  • *
  • Сообщений: 1565
  • УМка.
    • Просмотр профиля
А я знаю , а я знаю как писать такие программы которые глючат на многопроцессорных ядрах(сам писал) ! Надо закладываться на блокировку процессора при ожидании хардверной операции ! А тут такой приходит многопроцесорный контроллер - бац и вторую цепочку тредов запускает - тут вся работа программы и рушится. Примерно так на пальцах.  Правда так только в драйверах делали обычно.
Дома Linux Mint 21.1 / 22.00

 

Страница сгенерирована за 0.018 секунд. Запросов: 20.