haskellru | Unsorted

Telegram-канал haskellru - Haskell

1756

https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e

Subscribe to a channel

Haskell

без матстатистики не обойтись

Читать полностью…

Haskell

Мне кажется важнее думать наоборот: как выдавать воркерам джобы. Тебе же нужно SLA обеспечивать. Например: каждый пользователь ждет обратную связь не больше минуты.

Бьешь каждую джобу на интервалы размером
<квант времени>/<кол-во воркеров>/<пользователи>. Допустим при 4 юзерах и двух воркерах у нас время ожидания 1мин на юзера, тогда максимальное время выполнения это 0.5 минуты. Отправляешь сабтасок примерно на пол минуты и при выходе за лимит или изменение вводных делаешь переоценку и перепланировку. Дальше уже тюнишь механизмы переоценки и подгонки про план (exponential backoff, throttling). Я так понимаю два последующих кадра не сильно будут отличаться по времени рендеринга

Читать полностью…

Haskell

Две очереди – это как в диснейленде на атракционы?

Читать полностью…

Haskell

ну типа того. плюс сигнал от джоб чтоб появились новые таски. STM и это вот всё.

Читать полностью…

Haskell

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

Читать полностью…

Haskell

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

Читать полностью…

Haskell

очень просто. выкинул джобу из очереди и освободил воркеров.

Читать полностью…

Haskell

джобу генерит софт у художника, он присылает её шедулеру. Ну это всё ерунда.

Читать полностью…

Haskell

Код джоб ты сам пишешь, или он сторонний, и тебе уже будет дан?

Читать полностью…

Haskell

художник нажмёт "галя отмена" и всё

Читать полностью…

Haskell

А у тебя job выдают результаты не по всей задаче сразу, а по частям и дизайнеры сразу видят, и тебе их надо «типа одновременно делать»?

Читать полностью…

Haskell

Она описана в книге "Algorithms. A Functional programming appoach"

Читать полностью…

Haskell

А для очереди приоритетов можно взять "двоичную кучу на основе массивов" (array-based binary heap). Что такое "даг"?

Читать полностью…

Haskell

не, я имел в виду, что если задача длительная, то ее хорошо бы тоже разбить на подзадачи

Читать полностью…

Haskell

Если ты можешь задачи разбить на шаги, то это уже пол дела!

Читать полностью…

Haskell

тут непредсказуемо всё. таска может считаться 30 сек (маловероятно) а может 2 часа (более вероятно)

Читать полностью…

Haskell

пока стоишь в обычной очереди (от 20 минут до часа) на один аттракцион, можно купить в электронном киоске буст на 40 минут и пойти на другой через быструю очередь

Читать полностью…

Haskell

Ну, это уже детали! Только тут появится параметр емкости второй очереди. Как бы сколько вторая очередь может позволить джобам пробраться без очереди. Такие джобы-зайцы получаются

Читать полностью…

Haskell

А если использовать две очереди? Одна - очередь на ожидание для новых джоб (по приоритетам). Другая очередь - для воркеров для назначения уже исполняющихся тасков воркерам (по приоритетам джоб). Размер второй очереди может быть больше количества воркеров (??). Правда, я еще сам не совсем понимаю, как это будет выглядеть. Тогда появится параметр для емкости второй очереди. Только боюсь, как бы фигня полная не вышла.

А мы не усложняем? Может быть, просто, если джоба попала к воркерам, то так и оставить ее таски там? Есть ли смысл в более сложной схеме?

Читать полностью…

Haskell

Ну, ладно! Значит, джоба состоит из тасков. А в чем тогда конкретно загвоздка? Я пока не совсем понял (кстати, проговаривая задачу, ты можешь сам ее быстрее решить)

Читать полностью…

Haskell

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

Читать полностью…

Haskell

Хорошо, а отмену джобы как ты будешь делать?

Читать полностью…

Haskell

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

Читать полностью…

Haskell

Можно ли и на другие шаги разбивать, более мелкие?

Читать полностью…

Haskell

Так вот же шаги, на которые можно разбить задачи (джобы)! Только как ты собрался делать прерывание перед и после показа дизайнерам? Эта деталь тоже важна

Читать полностью…

Haskell

для очереди приоритетов можно взять psqueues, там их сотня дай бог будет. это ерунда

Читать полностью…

Haskell

Можно взять и чистую функциональную кучу

Читать полностью…

Haskell

подзадачи это даг тасков у джобы

Читать полностью…

Haskell

ну шаг это "освободился воркер, назначить надо"

Читать полностью…

Haskell

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

Читать полностью…
Subscribe to a channel