Replies (8)

  • @jtootf, Я полагаю корень проблемы можно найти в статье Parallel Implementation of Functional Languages за авторством Wilhelm, Alt, Martin, Raber.
  • @Kim, а можно в кратком изложении? статью почитаю, спасибо
  • @jtootf, мелкозернистый параллелизм в функциональных и логических языках скорее всего (но доказательства нет, лишь указание почему все попытки не дали результатов) не даст профита, по скольку коммуникация стоит больше, чем непосредственное вычисление функций в одном потоке.
  • @Kim, я не вижу, где может быть проблема в данном случае. разделяемая память для ссылок на энумератор у потоков есть, более они ничего не делят
  • @jtootf, в реализации особых проблем нет. Вопрос только в том будет ли от этого польза.

    Попробуй поискать по запросу "parallel for".
  • @Kim, в случае с parallel for задача в разбросе данных с одним обработчиком на много ядер по данным, деление входящего потока — последовательное; в случае с parallel iteratees задача в разбросе данных с разными обработчиками на много ядер по обработчикам, деление входящего потока отсутствует (он шарится между обработчиками). впрочем, сейчас ещё почитаю
  • @jtootf, Тебе обязательно именно функционально? На MIT OpenCourseWare есть лекции по Multicore C.
  • @nirthfurzahad, да. у меня вообще контекст весьма узкий — конкретно iteratees, и прежде всего в Haskell