powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная будущая мультипоточность
24 сообщений из 149, страница 6 из 6
Тяпничная будущая мультипоточность
    #39875749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MoveTo - вообще рудимент. Выкину его.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39875856
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Linerel - тоже рудимент вобщем-то. Их назначение было понятно когда они рисовали
точки и линии в VGA-режиме какой-то старой DOS-освкой среды типа Borland Pascal.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39876070
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПридумай задачу под твой процессор.
любая
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39876072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухmaytonПридумай задачу под твой процессор.
любая
Нет
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39876295
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм... если задать в качестве upper bound обобщенного типа любой тип наследник AnyVal
то каким образом инициплизировать числовой тип нулем и единицей?

Код: java
1.
2.
3.
4.
5.
6.
class GilbertLazyStream[T <: AnyVal] {

  val u:T = 1

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



Код: java
1.
2.
3.
4.
5.
6.
[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]             ^



Среди числовых типов там нет какого-то другого базового.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39876300
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

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

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
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))
  }

}
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39877393
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonполудухпропущено...

любая
Нет
демон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на диск
так то ему треды не нужны, но вот I/O диска намекает, что лучше эту задачу скинуть кому-то другому и, не дожидаясь ответа , идти считать дальше
отдельный поток пошёл шуршать записью на диск, при этом никак не пересекаясь с основным.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39877396
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудухдемон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на дискПроцессор-то тут при чём?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39877444
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer, да вот такие мы Рабиновичи. Thanks.

Я еще этот-же пример попробую на GoLang.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39877759
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorovполудухдемон считает всякую всячину
быстро, без задержек, но периодически прилетают задачи, где результаты надо записать на дискПроцессор-то тут при чём?
задачу кому-то же надо проконтролировать
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879695
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в ++20 появятся std::coroutine + std::lazy на замену std::future, который ресурсы выжирает и роняет эффективность
ещё планируют добавить co_executor + примитивов для контроля над ресурсами
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879696
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...в каком-то там неопределённом будущем...
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879711
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В будущем можно будет на С++ нарисовать кривую Гилберта?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879893
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в чём сложность?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879895
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложности нет. А как вы будете делать итератор? На фьючерсах?
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879976
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя первая тема с гилбертом аж 2015 года
за 4 года вопрос не закрыл, а сложности нет?
насколько я понял задачу, там число операций удваивается с каждой итерацией
(за операцию берётся создание нового угла, или как он там называется)
ну так это мелкие же расчёты, которых много
это задача для GPU, как я уже писал
а вопрос реализации вторичен, пусть корутины с нитками тащат
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879981
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМеня интересуют языки с yield, ленивым конструированием списков.
co_yield в корутинах есть
а std::lazy в ++20 появится (хоть это и просто созвучно
)
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39879998
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
полудух,

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

Какова цена решения с точки зрения разработки.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39880134
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonпри чем здесь GPU вообще?
сначала спрашиваешь про многопоточность, а потом причём тут многопоточость
в теме про многопоточность...

maytonМеня интересовали просты практичные вопросы использования.
https://ru.wikipedia.org/wiki/Алгоритм_Гилберта_—_Джонсона_—_Кирти#Использование
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39880157
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно проехали. Вообще не в ту степь.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39880188
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будет время, накидаю на F#, если кто-то не сделал этого раньше.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39880295
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Welcome. Я буду коллекционировать.

+ Я еще на Go напишу.
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39884568
Фотография полудух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YouTube Video
...
Рейтинг: 0 / 0
Тяпничная будущая мультипоточность
    #39990631
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Up. Небольшой апдейт по проекту Loom.

http://cr.openjdk.java.net/~rpressler/loom/loom/sol1_part1.html

Еще не читал. Буду читать вместе с вами.
...
Рейтинг: 0 / 0
24 сообщений из 149, страница 6 из 6
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничная будущая мультипоточность
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]