Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
MoveTo - вообще рудимент. Выкину его.
14 окт 19, 01:10    [21993335]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
Linerel - тоже рудимент вобщем-то. Их назначение было понятно когда они рисовали
точки и линии в VGA-режиме какой-то старой DOS-освкой среды типа Borland Pascal.
14 окт 19, 11:25    [21993518]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
mayton
Придумай задачу под твой процессор.

любая
14 окт 19, 15:47    [21993852]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
полудух
mayton
Придумай задачу под твой процессор.

любая

Нет
14 окт 19, 15:48    [21993854]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
Хм... если задать в качестве upper bound обобщенного типа любой тип наследник AnyVal
то каким образом инициплизировать числовой тип нулем и единицей?

class GilbertLazyStream[T <: AnyVal] {

  val u:T = 1

  var glx:T = 0
  var gly:T = 0


[INFO] Compiling 2 source files to /home/mayton/git/mtn-image/target/classes at 1571086937367
[ERROR] /home/mayton/git/mtn-image/src/main/scala/mayton/image/iterators/scala/GilbertLazyStream.scala:5: error: type mismatch;
[ERROR]  found   : Int(1)
[ERROR]  required: T
[ERROR]   val u:T = 1
[ERROR]             ^


Среди числовых типов там нет какого-то другого базового.
15 окт 19, 00:03    [21994199]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
fixxer
Member

Откуда:
Сообщений: 736
mayton,

Что-то ты мой пример перепел как Рабинович Карузо. Навтыкал мутабельности какой-то ненужной. В примере все есть, только рассмотри внимательно. Туплы, это не координаты, а дельты координат.

Так понятнее?

case class Point(x: Int, y: Int)

case class Delta(dx: Int, dy: Int) {
  def applyTo(point: Point): Point = Point(point.x + dx, point.y + dy)
}

class GilbertLazyStream {

  val u = 1

  private def a(i: Int): Stream[Delta] = {
    if (i > 0) {
      d(i - 1) #::: Delta(u, 0) #:: a(i - 1) #::: Delta(0, u) #:: a(i - 1) #::: Delta(-u, 0) #:: c(i - 1)
    } else {
      Stream.empty
    }
  }

  private def b(i: Int): Stream[Delta] = {
    if (i > 0) {
      c(i - 1) #::: Delta(-u, 0) #:: b(i - 1) #::: Delta(0, -u) #:: b(i - 1) #::: Delta(u, 0) #:: d(i - 1)
    } else {
      Stream.empty
    }
  }

  private def c(i: Int): Stream[Delta] = {
    if (i > 0) {
      b(i - 1) #::: Delta(0, -u) #:: c(i - 1) #::: Delta(-u, 0) #:: c(i - 1) #::: Delta(0, u) #:: a(i - 1)
    } else {
      Stream.empty
    }
  }

  private def d(i: Int): Stream[Delta] = {
    if (i > 0) {
      a(i - 1) #::: Delta(0, u) #:: d(i - 1) #::: Delta(u, 0) #:: d(i - 1) #::: Delta(0, -u) #:: b(i - 1)
    } else {
      Stream.empty
    }
  }

  def nlz(xArg: Int): Int = {
    var x = xArg
    var n = 0
    if (x == 0) return 32
    n = 1
    if ((x >>> 16) == 0) {
      n += 16
      x <<= 16
    }
    if ((x >>> 24) == 0) {
      n += 8
      x <<= 8
    }
    if ((x >>> 28) == 0) {
      n += 4
      x <<= 4
    }
    if ((x >>> 30) == 0) {
      n += 2
      x <<= 2
    }
    n = n - (x >>> 31)
    n
  }

  def log2up(x: Int): Int = {
    if (x < 1) return 0
    32 - nlz(x - 1)
  }

  def gilbertPoinsStream(size : Int) : Stream[Point] = {
    val level = log2up(size)
    a(level).scanLeft(Point(0, 0))((point, delta) => delta.applyTo(point))
  }

}
15 окт 19, 02:18    [21994221]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
mayton
полудух
пропущено...

любая

Нет

демон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на диск
так то ему треды не нужны, но вот I/O диска намекает, что лучше эту задачу скинуть кому-то другому и, не дожидаясь ответа, идти считать дальше
отдельный поток пошёл шуршать записью на диск, при этом никак не пересекаясь с основным.
17 окт 19, 06:38    [21995995]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9486
полудух
демон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на диск
Процессор-то тут при чём?
17 окт 19, 07:00    [21996000]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
fixxer, да вот такие мы Рабиновичи. Thanks.

Я еще этот-же пример попробую на GoLang.
17 окт 19, 09:52    [21996097]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
Basil A. Sidorov
полудух
демон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на диск
Процессор-то тут при чём?

задачу кому-то же надо проконтролировать
17 окт 19, 15:27    [21996646]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
в ++20 появятся std::coroutine + std::lazy на замену std::future, который ресурсы выжирает и роняет эффективность
ещё планируют добавить co_executor + примитивов для контроля над ресурсами
22 окт 19, 09:51    [21999516]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
...в каком-то там неопределённом будущем...
22 окт 19, 09:52    [21999517]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
В будущем можно будет на С++ нарисовать кривую Гилберта?
22 окт 19, 10:08    [21999534]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
а в чём сложность?
22 окт 19, 13:38    [21999809]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
Сложности нет. А как вы будете делать итератор? На фьючерсах?
22 окт 19, 13:41    [21999813]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
у тебя первая тема с гилбертом аж 2015 года
за 4 года вопрос не закрыл, а сложности нет?
насколько я понял задачу, там число операций удваивается с каждой итерацией
(за операцию берётся создание нового угла, или как он там называется)
ну так это мелкие же расчёты, которых много
это задача для GPU, как я уже писал
а вопрос реализации вторичен, пусть корутины с нитками тащат
22 окт 19, 15:07    [21999965]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
mayton
Меня интересуют языки с yield, ленивым конструированием списков.

co_yield в корутинах есть
а std::lazy в ++20 появится (хоть это и просто созвучно Картинка с другого сайта.)
22 окт 19, 15:10    [21999972]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
полудух,

при чем здесь GPU вообще? Меня интересовали просты практичные вопросы использования.
Видел сорц на Java? А потом на Scala. Один и тот-же итератор который обходит древовидные
структуры.

Какова цена решения с точки зрения разработки.
22 окт 19, 15:23    [21999994]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
mayton
при чем здесь GPU вообще?

сначала спрашиваешь про многопоточность, а потом причём тут многопоточость
в теме про многопоточность... Картинка с другого сайта.
mayton
Меня интересовали просты практичные вопросы использования.

https://ru.wikipedia.org/wiki/Алгоритм_Гилберта_—_Джонсона_—_Кирти#Использование
22 окт 19, 21:56    [22000264]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
Ладно проехали. Вообще не в ту степь.
22 окт 19, 23:00    [22000302]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
hVostt
Member

Откуда:
Сообщений: 16165
Будет время, накидаю на F#, если кто-то не сделал этого раньше.
23 окт 19, 00:15    [22000350]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
mayton
Member

Откуда: loopback
Сообщений: 42917
Welcome. Я буду коллекционировать.

+ Я еще на Go напишу.
23 окт 19, 10:10    [22000508]     Ответить | Цитировать Сообщить модератору
 Re: Тяпничная будущая мультипоточность  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
2 ноя 19, 09:40    [22008609]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 5 [6]      все
Все форумы / Программирование Ответить