|
Работа с матрицей
|
|||
---|---|---|---|
#18+
JustSomethingа кто сказал что не хочу и не буду? Весь топик об этом. Собственных попыток - ноль. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 12:37 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mini.weblab JustSomething, переходите на Питон! будет проще! :-) Модератор: Под спойлер ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 12:43 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
Интересно что Python-разработчик как таковой - редок в вакансиях. Его часто подмешивают к таким хеш-тегам как data-engineer, data-scientist, devops. +Еще часто его можно видеть как необходимый в машинном обучении. Тоесть он необходим как bash, но о нем не говорят как о независимом языке. Скорее как о слое который управляет более низким слоем написанном уже на этих ваших CUDA-х, OpenCV-ах. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 12:47 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
я не призываю никого становиться Питон-разработчиком :) просто для начинающего алгоримы было бы проще начать изучать на Питоне (а не на С или С++) в данном случае я за divide and conquer :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 13:02 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mini.weblab, проще всего начинать с Intel x86 ассемблера под flat модель, если преподам показать правильный подход к его изучению. После чего учащийся сможет легко и непринуждённо самостоятельно осваивать любые языки. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 13:16 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
rdb_devпроще всего начинать с Intel x86 ассемблера под flat модель Замороченный всё же у интеля ассемблер. DEC PDP-11 попроще будет и на Си хорошо проецируется. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 13:22 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, можно даже VAX или MIPS, что интереснее, полезнее и денежнее. Главное - показать чем и как, в конечном итоге, оперирует АЛУ. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 13:35 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mini.weblab я не призываю никого становиться Питон-разработчиком :) просто для начинающего алгоримы было бы проще начать изучать на Питоне (а не на С или С++) в данном случае я за divide and conquer :) Дидактические свойства Питона - под большим сомнением. Мне кажется что единственный полезный язык для обучения новичков - это Pascal. В нем соблюден баланс информативной полезности сообщений об ошибках в случае если таковые есть. Грубо говоря новичок сравнительно легко читает их и фиксит. В этом плане Никлаус Вирт - молодец хотя и зануда. Сообщения-же компилляции которые выдает С++ - поражают воображение объемом трафика особнно когда не сматчились паттерны процессора шаблонов, или ошибки линкера (смотрим топик где бедный Петро пытается победить Visual Studio и при том он - не новичек). Тоесть такой подход в обучении обречен сразу на провал и на демотивацию если нет учителя который в состоянии прочитать и прокомментировать эту техническую лабуду. И не дай бох это рантайм где мы видим ошибку как дамп памяти + содержимое регистров процессора (ага) посчитайте какой объем знаний уже тут нужен чтоб разобраться. Это к С++ надо еще и учебник Юрова читать про Ассемблер. Тоесть в учебном смысла С++ - непригоден если вы нуб и решили его учить самостоятельно. Демотивация гарантирована особенно на фоне C# к примеру. Щас еще крупно-корпорации открывают курсы для детей где обучают их Scratci но я этот язык пока не видел и ничего не могу сказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:00 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mayton, сделал как ты хотел! Не желаешь потестить производительность на больших массивах? :) Код: plaintext 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:13 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
rdb_dev, дружище я протещу только вечером. Доберусь до своей линукс машинки где у меня и железо хорошее. И clang установлен. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:16 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
я тоже свою версию написала (С) :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:19 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
rdb_dev mayton, сделал как ты хотел! Собирать надо с опцией -fopenmp mayton , делает неверное предположение, что тестировать нужно обязательно с большими матрицами. В то время как есть куча прикладной математики где матрицы маленькие. На маленьких матрицах ваш OpenMP тормознёт алгоритм разов в 10-ть. Ну а вы вообще... писать страшные алгоритмы один за одним вам не лень, подставить их в бенчмарк вам лень. Типа я должен сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:21 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
maytonМне кажется что единственный полезный язык для обучения новичков - это Pascal. Лично я начинал на ДВК-1 с Бейсика и машинных кодов, так что считаю эту связку оптимальной. Первый даёт языковые навыки для всех директивных языков и при этом достаточно беден чтобы руководство (список операторов) уместилось на один листок, второй - понимание как работает компьютер. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:22 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
я сейчас тоже попробую бенчмарки делать, но не знаю получится или нет :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:23 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mayton, забыл добавить, что нужно ещё заинклюдить <omp.h> ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:25 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
petrav На маленьких матрицах ваш OpenMP тормознёт алгоритм разов в 10-ть. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:30 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
petrav Ну а вы вообще... писать страшные алгоритмы один за одним вам не лень, подставить их в бенчмарк вам лень. Типа я должен сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:36 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
rdb_dev petrav На маленьких матрицах ваш OpenMP тормознёт алгоритм разов в 10-ть. Я уже проверял много лет назад с перемножением маленьких матриц с использованием OpenMP. Результаты были плачевные, ожидаемо, один только барьер памяти тебе снесёт все надежды на производительность. А у тебя нет возможности проверить? Как написать так возможность есть, как проверить так нет возможности. Зачем тогда писать. Короче ждём бенчмарк на маленьких матрицах. Например, 9. Размерность мира в котором мы двигаемся — 3, а не миллион. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:38 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov maytonМне кажется что единственный полезный язык для обучения новичков - это Pascal. Лично я начинал на ДВК-1 с Бейсика и машинных кодов, так что считаю эту связку оптимальной. Первый даёт языковые навыки для всех директивных языков и при этом достаточно беден чтобы руководство (список операторов) уместилось на один листок, второй - понимание как работает компьютер. Мой первый язык это был Бейсик для Электроника БК 10. И первый софт я не написал а содрал с книжки 1 в 1. Вот такое было обучение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 16:52 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mayton Dimitry Sibiryakov пропущено... Лично я начинал на ДВК-1 с Бейсика и машинных кодов, так что считаю эту связку оптимальной. Первый даёт языковые навыки для всех директивных языков и при этом достаточно беден чтобы руководство (список операторов) уместилось на один листок, второй - понимание как работает компьютер. Мой первый язык это был Бейсик для Электроника БК 10. И первый софт я не написал а содрал с книжки 1 в 1. Вот такое было обучение. Это не круто. Программируемый калькулятор МК-52 круче, ассемблер и машинный код. Я на нём программировал даже в поезде на втором "этаже". А ещё мама приносила из института перфокарты и я умел их расшифровывать. Но первый софт я написал на советском лунаходе . ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:01 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
petrav rdb_dev mayton, сделал как ты хотел! Собирать надо с опцией -fopenmp mayton , делает неверное предположение, что тестировать нужно обязательно с большими матрицами. В то время как есть куча прикладной математики где матрицы маленькие. На маленьких матрицах ваш OpenMP тормознёт алгоритм разов в 10-ть. Давай порассуждаем. У этой задачи есть 2 аспекта. Первый - это оценка асимптоматики. Она - квадратичная по size - матрицы. Что-бы мы не придумывали. Какие - бы хитровыеб.... умные способы мы не избирали - все одно сведем к перебору всех чисел "бубнового туза". Второй аспект - чисто машиный. Это - игры с указателями. Оптимальная арифметика инкрементов где мы должны вообще уйти от операций умножения и свести их к алгоритмам наподобие Брезенхема. - Игры с кешами L1/L2/L3. И padding с целю попадания в кеш-линию. Есть творческая задачка где умножаются 2 большие матрицы. Кстати вторая - транспонируется предварительно (угадай зачем). И в зависимости от кластеризации данных (близко они лежат или далеко в памяти) мы можем получать в разы отличающееся характеристики. А поскольку эта задача идеально ложиться в map-reduce - то мы можем этот ромбик как торт резать на трапеции так как будет выгодно Threads процессора или разложить данные в 2 канала памяти. Или предварительно прогрев кеши нужными данными очень быстро дернуть сложение и таким образом "нае6аtь" потенциального заказчика показав ему сферическое сложение в вакууме. Ведь время загрузки матрицы с диска мы не учли. А хардкодные цифры никому не интересны. - Игры с разрядностью. С компиллятором. С железом. Все части машинного аспекта - выгодно тестировать на больших объемах оперативки. На малых - непонятно что мы тестируем. Ведь ты должен динамически генерить новые матрицы для каждого вызова. Ты-же думал об этом? Верно? Ну а вы вообще... писать страшные алгоритмы один за одним вам не лень, подставить их в бенчмарк вам лень. Типа я должен сделать. Какой ты... нетерпеливый. По моему ... я вообще первый энтузиаст кто на скруле поднял тему бенчмарков и даже организовал группу разработчиков в некий соревновательный процесс лет 5 назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:07 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
petrav mayton пропущено... Мой первый язык это был Бейсик для Электроника БК 10. И первый софт я не написал а содрал с книжки 1 в 1. Вот такое было обучение. Это не круто. Программируемый калькулятор МК-52 круче, ассемблер и машинный код. Я на нём программировал даже в поезде на втором "этаже". А ещё мама приносила из института перфокарты и я умел их расшифровывать. Но первый софт я написал на советском лунаходе . Я помню его. (Калькулятор). Я решал кубическое уравнение исопльзуя только стек. Из 4х ячеек. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:09 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
mayton Кстати вторая - транспонируется предварительно (угадай зачем). Не вижу зачем заранее транспонировать матрицу если нам нужна транспонировання матрица. Ведь можно написать спец. функцию где индексы i и j будут просто поменяны местами. mayton Все части машинного аспекта - выгодно тестировать на больших объемах оперативки. На малых - непонятно что мы тестируем. Мы тестируем то что нам нужно по прикладной задаче. У нас размерность мира 3, а не 1000000. mayton Ведь ты должен динамически генерить новые матрицы для каждого вызова. Ты-же думал об этом? Верно? Ну я доработал бенчмарк до генерации массива для каждого вызова. Теперь в 64-бит отставание в 1.8 раз. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Код: plaintext 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. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:36 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
кстати, для тестов хорошо подходят единичные матрицы ( а также матрицы со всеми одинаковыми элементами ) думаю что для бенчмарков тоже подойдут ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:40 |
|
Работа с матрицей
|
|||
---|---|---|---|
#18+
petrav mayton Кстати вторая - транспонируется предварительно (угадай зачем). Не вижу зачем заранее транспонировать матрицу если нам нужна транспонировання матрица. Ведь можно написать спец. функцию где индексы i и j будут просто поменяны местами. Разумеется можно менять местами индекcы. А что почувствует канал памяти когда первая матрица сканируется for(i...) for (j... ) а вторая матрица - наоборот for(j...) for (i...) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2020, 17:43 |
|
|
start [/forum/topic.php?fid=57&msg=39962309&tid=2017415]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 266ms |
total: | 412ms |
0 / 0 |