10 лет

Последний пост:Вчера, 23:42
1820
Статистика
Всего постов
11889
3,563,050 просмотров
Новых постов
+1
3 в день
Лучшие посты автора
06.12.2013 +1165
25.12.2013 +442
27.01.2020 +441
05.02.2014 +427
17.12.2013 +401
Лучшие посты читателей
Julio +387
Stratosfera +277
Gipsy +262
Gipsy +241
Zedmor +231
Самые активные читатели
Julio 679
Soul 285
iYeti 179
barbeysize 144
kain1987 132
1 414 434 435 436 437 456 595
  • Цитата (nonna @ 21.12.21)  

    На чем сейчас считаешь?

    На 12 ядерном компе.

     

    Проблема в том, что ни проц, ни память, ни диск не расходуются на 100% в процессе расчетов. 

     

    Сам расчет идет последовательно. Будем считать, что распараллелить процесс нельзя (по крайней мере, исходим из этого). Каждое последующее вычисление строится на результате предыдущего.

     

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

    1677/2241
    Ответить Цитировать
    1
  • Mercator, рассматриваете вариант временной аренды высокопроизводительного сервера для выполнений расчетов? Это может быть быстрее/выгодней в сравнении затратами усилий на оптимизацию алгоритма.

    8/53
    Ответить Цитировать
    1
  • Цитата (bool @ 21.12.21)  

    Mercator, рассматриваете вариант временной аренды высокопроизводительного сервера для выполнений расчетов? Это может быть быстрее/выгодней в сравнении затратами усилий на оптимизацию алгоритма.

    Да, рассматриваем. 

    Как раз детали и интересуют.

    1678/2241
    Ответить Цитировать
    1
  • В МГУ есть суперкомп, как раз для решения задач вашего формата. В свое время договаривались биток на нм майнить, не пошло тк на другое заточен. Вам в самый раз. 

    P.S. Контакт человека с кем договариваль аннулирован, вариант захода за вами.

    5/7
    Ответить Цитировать
    -3
  • Mercator, можно прикинуть расходы онлайн. Это Amazon web services. Или смотреть аналогичные услуги от других (например, Яндекс)

     

    https://calculator.aws/#/?nc2=pr

     

    конечно, нужен ИТ-человек в этом процессе

    9/53
    Ответить Цитировать
    1
  • Цитата (Mercator @ 21.12.21)  

    Да, рассматриваем. 

    Как раз детали и интересуют.

    Привет,

     

    Уже вроде написали, но я тоже добавлю. Зачем покупать свое железо - идите в публичное облако.  AWS, Azure, GCP, Oracle...

    Там можно попробовать любое железо и масштабировать до любых масштабов. Ну и 'pay as you go' - т.е. платишь только тогда и за то, что используешь.

    43/132
    Ответить Цитировать
    3
  • Цитата (Mercator @ 21.12.21)  

    На 12 ядерном компе.

     

    Проблема в том, что ни проц, ни память, ни диск не расходуются на 100% в процессе расчетов. 

    Если ты не упираешься в текущее железо по производительности, то и апгрейд не даст существенного улучшения. 

    Нужно, всё-таки, улучшать алгоритм: 

     

    - Искать узкое место. Вдруг выясниться что дело не в вычислениях, а в считывании данных. 
    - Паралелить вычисления. Если вычисления не распараллелены, то будь у тебя хоть 100-ядерный комп — всё равно всё будет также медленно работать, потому что ресурсы будут использоваться неоптимально;

    - Кэшировать и переиспользовать уже просчитанные значения;

    - Сделать отдельный сервис с длительными вычислениями, который будет актуализировать данные раз в N времени. По API забирать уже какие-то посчитанные значения и работать с ними;

    2/2
    Ответить Цитировать
    18
  • bool, к сожалению, айтишника среди нас нет. Мне бы хоть понять, как устроен процесс аренды этих мощностей. Для начала я хотел бы тестово запустить там Биффа, чтобы понять, во сколько раз увеличится скорость и принять решение, надо ли оно вообще. Такое практикуется?

     

    И если да, то что для этого надо сделать?

    1679/2241
    Ответить Цитировать
    1
  • Цитата (Mercator @ 21.12.21)  

    Сам расчет идет последовательно. Будем считать, что распараллелить процесс нельзя (по крайней мере, исходим из этого). Каждое последующее вычисление строится на результате предыдущего.

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

    А без оптимизации или распараллеливания на железо бесполезно рассчитывать: мощности отдельных современных ядер не настолько различаются, прогресс идёт по пути увеличения их количества.

    107/125
    Ответить Цитировать
    11
  • Игорь, привет!

     

    Если с облаками не получится, то я могу попробовать запустить у себя на 2xXeon Silver 4114. Конфигурация совсем не топовая, но возможно что-то по изменению скорости будет понятно. Пиши если понадобится.

     

    PS Всем, кто меня помнит, тоже привет 

    1/1
    Ответить Цитировать
    3
  • Цитата (Mercator @ 21.12.21)  

    Для начала я хотел бы тестово запустить там Биффа, чтобы понять, во сколько раз увеличится скорость и принять решение, надо ли оно вообще. Такое практикуется?

     

    И если да, то что для этого надо сделать?

    Подойдёт AWS.

    Если с Линуксом ранее не приходилось работать, то значит разворачивать инстанс на Виндоус или Мак, вот инструкция с которой можно начать:

    https://aws.amazon.com/ru/getting-started/hands-on/launch-windows-vm/

    При выборе типа инстанса (см. шаг 3е) нужно исходить из того, во что упирается расчет: диск, оперативка или процессор. Мощность соответственно чем выше, тем быстрее. Про типы инстансов см. здесь https://aws.amazon.com/ru/ec2/instance-types/, в твоем случае скорее всего нужно смотреть раздел "Для ускоренных вычислений"

     

    Проблема в том, что ни проц, ни память, ни диск не расходуются на 100% в процессе расчетов. 

    Это странно, прямо скажем.

    8/12
    Ответить Цитировать
    4
  • Цитата (Mercator @ 21.12.21)  

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

     

    И если да, то что для этого надо сделать?

    Игорь, я написал тебе в личку. Зарегаться в публичном облаке куда проще, чем купить свой сервер )

    44/132
    Ответить Цитировать
    0
  • Я более-менее разобрался в ситуации. Оказалось, что на данный момент подключать внешние вычислительные мощности рано. Я не знал, что скорость можно увеличивать только за счет параллельных вычислений, но не за счет более мощного оборудования.

     

    То, как устроен Бифф, не предполагает увеличения скорости от сторонних вычислений, т.к. он идет последовательно, а не параллельно. С этим ничего поделать нельзя, т.к. суть там в следующем (упрощенно):

    Мы посчитали все возможные варианты на день 1, дальше, зная что получилось, можем посчитать все варианты на день 2, дальше на день 3 и т.д. Никак не начать считать день 4 без знаний, с какими результатами мы к нему подошли.

    Еще раз, это очень упрощенно, лишь показываю суть.

     

    Может быть, что-то еще возможно распараллелить внутри "дня", в эту сторону будем копать.

     

    Спасибо всем за инфу. Еще и лично нападало ответов, тоже спасибо.

    1680/2241
    Ответить Цитировать
    4
  • Mercator, Звучит странно. Я правильно понимаю, что вы просто считаете, что с вероятностью 1/24000 индекс вырастет на х. И так далее для всех вариантов исходов которые были.

    240/285
    Ответить Цитировать
    2
  • Soul, я два раза написал "Упрощенно". 

    В третий раз пишу. Это упрощенное объяснение, почему нельзя распараллелить процесс.

    Можно я не буду все тысячи строк кода сюда постить?

    1681/2241
    Ответить Цитировать
    0
  • Mercator, Ну естественно дело твоё. Можем не обсуждать. Код постить не надо вообще. Достаточно обьяснить математическую логику за процессом.

    241/285
    Ответить Цитировать
    0
  • Цитата (Mercator @ 21.12.21)  

    P.S. И да, раз уже второй человек пишет, что мы втыкаем пирамидку в круглое отверстие, так вот нет. Слава богу, нашего IQ в 35 пунктов хватило на то, чтобы дойти до гениальной мысли о том, что если прога работает медленно, то для начала надо постараться выжать всё из самого кода. Более того, вопрос скорости расчетов был поставлен во главу угла еще до того, как вообще была написана первая строчка кода. 

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

    27/39
    Ответить Цитировать
    2
  • Цитата (Mercator @ 21.12.21)  

    Можно я не буду все тысячи строк кода сюда постить?

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

     

    Ну засмеют тебя 49 "знатоков", но может 1 даст дельный совет. Считаешь, что на отсев полезных советов от бесполезных уйдет слишком много времени?

    83/100
    Ответить Цитировать
    1
  • 2unreal2b, да это ради бога, код уже там, через некоторое время будет и открытый доступ. 

    Я отвечал Соулу, когда он зацепился за мою фразу о последовательности, решив, что в этом весь Бифф и есть.

    1682/2241
    Ответить Цитировать
    1
  • Может быть, что-то еще возможно распараллелить внутри "дня", в эту сторону будем копать.

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

    все много-флопсы в суперкомпах в основном за счет  многоядерности.

     

    так что кэширование результатов и распараллеливание - основной путь ускорения.

     

    Это всё при условии что алгоритм нельзя поменять.

    возможно есть другой путь.

     

    пример - определение силы комбинации руки.

    очевидный путь: перебираем карты в руке сравниваем с комбинациями - очень долго

    второй очевидный путь- расссчитать все возможные комбинации и сохранить - один раз долго-долго посчитать потом быстро получать результат из ОЧЕНЬ большой базы

    оптимальный результат - правильно свернуть  базу из п.2 и за не очень большое время и средними затратами памяти получать результаты

    10/11
    Ответить Цитировать
    6
11888 постов
1 414 434 435 436 437 456 595
3 человека читают эту тему (2 пользователя, 1 гость):
Зачем регистрироваться на GipsyTeam?
  • Вы сможете оставлять комментарии, оценивать посты, участвовать в дискуссиях и повышать свой уровень игры.
  • Если вы предпочитаете четырехцветную колоду и хотите отключить анимацию аватаров, эти возможности будут в настройках профиля.
  • Вам станут доступны закладки, бекинг и другие удобные инструменты сайта.
  • На каждой странице будет видно, где появились новые посты и комментарии.
  • Если вы зарегистрированы в покер-румах через GipsyTeam, вы получите статистику рейка, бонусные очки для покупок в магазине, эксклюзивные акции и расширенную поддержку.