OberonCore
https://forum.oberoncore.ru/

Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфеля?
https://forum.oberoncore.ru/viewtopic.php?f=27&t=6675
Страница 1 из 3

Автор:  Wlad [ Понедельник, 16 Ноябрь, 2020 15:02 ]
Заголовок сообщения:  Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфеля?

Кто-нибудь сталкивался с подобными оценками?
Или - проводил самостоятельно?
Нужны на одинаковых задачах, одних и тех же платформах и окружениях.

Автор:  Wlad [ Вторник, 24 Ноябрь, 2020 17:24 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

И - тишина...

Автор:  Sergej Durmanov [ Вторник, 24 Ноябрь, 2020 19:34 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

интересует абстрактное быстродействие?)
Нужно конкретнее. Вот, например, при перемножение матриц в активном обероне могут быть задействованы все ядра процессора и simd инструкции. Будем сравнивать?

Автор:  Wlad [ Среда, 25 Ноябрь, 2020 18:14 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Sergej Durmanov писал(а):
Вот, например, при перемножение матриц в активном обероне могут быть задействованы все ядра процессора и simd инструкции. Будем сравнивать?
А - что, в перечисленных языках, есть встроенный тип/класс "матрица", определены методы и мы будем сравнивать реализации?
Вы задали некорректный вопрос на вопрос.

Автор:  Sergej Durmanov [ Среда, 25 Ноябрь, 2020 18:59 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Матрица это же двумерный массив )) Так что всё честно)

Автор:  Александр Ильин [ Среда, 25 Ноябрь, 2020 23:25 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Будете сравнивать, обязательно проверьте язык Julia.

Автор:  Info21 [ Четверг, 26 Ноябрь, 2020 09:17 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Sergej Durmanov писал(а):
Матрица это же двумерный массив )) Так что всё честно)
Лучше объяснить, почему они встроили это умножение в язык, а не сделали спецбиблиотеку вроде Blackbox/Math.

Автор:  Sergej Durmanov [ Четверг, 26 Ноябрь, 2020 11:57 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Info21 писал(а):
Sergej Durmanov писал(а):
Матрица это же двумерный массив )) Так что всё честно)
Лучше объяснить, почему они встроили это умножение в язык, а не сделали спецбиблиотеку вроде Blackbox/Math.
а оно и сделано в виде библиотеки. Но так как в Активном Обероне есть перегрузка операций, то в программе это всё выглядит органично.

Автор:  Sergej Durmanov [ Четверг, 26 Ноябрь, 2020 12:00 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Александр Ильин писал(а):
Будете сравнивать, обязательно проверьте язык Julia.
не компетентен в julia, был бы готовый пример на этом яп, можно было бы сравнить с реализацие на ао.

Автор:  Info21 [ Четверг, 26 Ноябрь, 2020 17:19 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Sergej Durmanov писал(а):
Info21 писал(а):
Sergej Durmanov писал(а):
Матрица это же двумерный массив )) Так что всё честно)
Лучше объяснить, почему они встроили это умножение в язык, а не сделали спецбиблиотеку вроде Blackbox/Math.
а оно и сделано в виде библиотеки. Но так как в Активном Обероне есть перегрузка операций, то в программе это всё выглядит органично.
Тогда нечего сравнивать.

Автор:  Sergej Durmanov [ Четверг, 26 Ноябрь, 2020 18:01 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

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

Автор:  Wlad [ Пятница, 27 Ноябрь, 2020 11:32 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Sergej Durmanov писал(а):
Так в других языках, обычно, тоже библиотечная реализация, с разной степенью интегрированности в компилятор или использования языковых средств, обеспечивающих бесшовную интеграцию.

Ну, тогда - сам Дейкстра велел подобрать и оформить аналогичные семантические случаи и протестировать-сравнить

Автор:  Info21 [ Пятница, 27 Ноябрь, 2020 18:27 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Интересней вопрос, насколько эффективно можно реализовать библиотечную процедуру, используя базовые средства языка, и, затем, насколько легко оптимизировать её, оставаясь по-максимуму в пределах языка (ср. code-процедуры).

Ведь обычные языки (т.е. сделанные как попало) потому и включают в язык сложные средства, что их нельзя эффективно реализовать, используя только языковое ядро.

Автор:  Sergej Durmanov [ Суббота, 28 Ноябрь, 2020 11:52 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Ничего хорошего из этого не получится. На Обероне уж точно. Хотя современные компиляторы способны использовать simd инструкции и simd регистры, генерируя соответствующий код ( компилятор Активного Оберона тоже это делает ), тем не менее, нормально векторизовать и распараллелить код ни у кого не получается, ну разве что если этот код написан срециальным образом. Не смотря на потраченные деньги. Вполне возможно, если вбухнуть ещё 10 раз по столько, то что-то вменяемое получится. А пока остается ассемблер/интринсиксы и ручное написание библиотек с теми же ассемблером и интринсиксами.

Автор:  Wlad [ Суббота, 28 Ноябрь, 2020 13:50 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Sergej Durmanov писал(а):
Ничего хорошего из этого не получится.
я могу вам в скайпе расшарить экран с моим "проигрывателем полётов", где в режиме реального времени, чисто программно, без simd, аппаратного ускорения, cuda
и gpu, делаю видеоэффекты с виеопотоками от двух камер. Написано всё на дельфи 7. Всего с тремя строками на встроенном асме.

Автор:  Sergej Durmanov [ Суббота, 28 Ноябрь, 2020 14:02 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Wlad писал(а):
Всего с тремя строками на встроенном асме.
ну это же простая задача )) зачем там асм

Автор:  Sergej Durmanov [ Суббота, 28 Ноябрь, 2020 18:06 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Вот простой код на Активном Обероне с математическим расширением — умножение матриц 1024х1024(для начала, потом можно прибавлять стартовый размер, чтобы оценить масштаб проблемы). Сделайте на своем любимом языке и посмотрите, сколько времени занимает операция, начните с 1024, потом 2048... и т.д., пока хватит терпения дождаться). В примере создается три массива a, b, c signed32. Массив a инициализируется значением 5, массив b значением 10.
Код:
MODULETestMath; (** AUTHOR ""; PURPOSE ""; *)
IMPORT Commands, Stopwatch;
 
VAR a, b, c: ARRAY [ *, * ] OF SIGNED32;
VAR buf: ARRAY 32 OF CHAR;
 
(** *)
PROCEDURE Do*( context: Commands.Context );
VAR N: SIZE;
BEGIN
   IF ~context.arg.GetSize(N, FALSE) THEN N := 1024 END;
   context.out.String( "N = " ); context.out.Size( N ); context.out.Ln;
 
   NEW( a, N, N ); NEW( b, N, N ); NEW( c, N, N );
   a := 5; b := 10;
   VAR sw: Stopwatch.T; sw.Start;
       c := a * b;
   VAR t := sw.Elapsed( ); sw.Stop;
   Stopwatch.ToString( t, buf );
   context.out.String( buf ); context.out.Ln;
END Do;
 
BEGIN
 
END TestMath.Do ~
 
TestMath.Do 1024~
TestMath.Do 2048~
 
 
System.Free TestMath~

Автор:  Александр Ильин [ Воскресенье, 29 Ноябрь, 2020 04:15 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Julia v1.5.3:
Код:
for i in [1 2 4 8 16]
  print(i, ": ")
  N = 1024 * i
  A = fill(Int32(5), (N, N))
  B = fill(Int32(10), (N, N))
  @time begin
    C = A * B
  end
end
Код:
1:   0.520594 seconds (8 allocations: 4.000 MiB)
2:   4.198689 seconds (8 allocations: 16.000 MiB)
4:  33.793543 seconds (8 allocations: 64.000 MiB, 0.22% gc time)
8: 276.754758 seconds (8 allocations: 256.000 MiB, 0.04% gc time)
16: 2046.192749 seconds (8 allocations: 1.000 GiB, 0.00% gc time)

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

Автор:  Sergej Durmanov [ Воскресенье, 29 Ноябрь, 2020 14:13 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

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

Автор:  Александр Ильин [ Воскресенье, 27 Декабрь, 2020 23:23 ]
Заголовок сообщения:  Re: Встречалось ли сравнение быстродействия КП/АО/О7 и Эйфел

Что-то я не понял. Я один бенчмарк реализовал, и на этом всё закончилось?
Даже замеры Активного Оберона не будут обнародованы?

Страница 1 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/