Обычно после уроков меня тянет спать...но не в этом случае. Я влюбился в твой курс
@Forttig5 жыл бұрын
очень доходчиво
@k777ig4 жыл бұрын
Спасибо огромное)
@hammerhead835 жыл бұрын
Круто. Спасибо @Тимофей. Вот у меня есть какая задача в тему. Есть массив целых чисел (внушительный, около 80 млрд). Суть задачи заключается в подсчете минимального и максимального значений в массиве и их количества. Задача немного усложнена тем, что крайне желательно делать это примитивными функциями (без библиотек) потому как выполнение будет на GPU-ускорителе. И второе, крайне важное условие. Хотелось бы это сделать за один проход, поскольку частое копирование из ОЗУ ЦПУ в ОЗУ ГПУ и обратно (небольшими порциями по 10 ГБ за раз) будет негативно влиять на производительность. Да и массив изменяется довольно таки часто (7-8 изменений в сек). Есть какие-то идеи: как подсчитать? Есть смысл создать структуру на СИ и в нее записывать значения? Спасибо :)
@recreationreally43825 жыл бұрын
Неплохое у кого-то GPU, если 10 Gb - небольшая порция. Вам сортировать не надо. Разбиваете массив данных на число фрагментов равное числу нитей и ищете локальные экстремумы параллельно. На следующем шаге ищете глобальные экстремумы (их два - максимум и минимум) среди локальных. Зачем Вам структуры если все целое? Для индексации 80 млрд элементов потребуются многомерные массивы, например, [2000][2000][20000] или [2000][4000000]. Ззагружать в графическую память придется порциями, она вроде бы много меньше чем 320 Gb.
@ГеннадийСамойлов-с4ю4 жыл бұрын
@@recreationreally4382 ты че такой умный?
@zakharatat54642 жыл бұрын
а почему эти программы не умеют считать кол-во знаков, сумму, произведение чисел которые состоят более чем из 10 знаков? кто знает?
@programer84 жыл бұрын
Когда хотим подсчитать количество цифр какого-то числа, то оператор int digit = n % 10; является лишним.
@Кочевник-й3г4 жыл бұрын
Полагаю это сделано нарочно, чтобы количество строк не отличалось между собой. Так визуально легче различать, где именно происходят изменения.