Я недавно начал работать над проектом, чтобы определить, как наилучшим образом использовать вычислительную мощность, доступную в современных видеокартах для общего программирования. Кажется, что полевое программирование GPU общего назначения (GPGPU) имеет большой уклон к научным приложениям с большим количеством математики, поскольку это хорошо согласуется с вычислительной моделью GPU. Это все хорошо и хорошо, но большинство людей не тратят все свое время на работу программного обеспечения для моделирования и тому подобного, поэтому мы подумали, что можно создать общую основу для простого создания программного обеспечения с поддержкой графического процессора для масс.
Это приводит к вопросу, который я хотел бы задать; Каковы наиболее распространенные виды работ, выполняемых программами? Не требуется, чтобы работа очень хорошо переводилась в программирование на GPU, поскольку мы готовы принять небольшое улучшение производительности (лучше, чем ничего, верно?).
Мы уже имеем в виду несколько предметов:
- Управление данными. Управление большими объемами данных из баз данных.
и иначе.
- Программы типа электронных таблиц (в некоторой степени связано с вышеизложенным).
- Программирование в графическом интерфейсе (хотя получить доступ к
соответствующий код).
- Распространенные алгоритмы, такие как сортировка и поиск.
- Общие коллекции (и их интеграция с манипулированием данными
алгоритмы)
Какие другие задачи кодирования очень распространены? Я подозреваю, что большая часть написанного кода относится к категории управления запасами и, в противном случае, отслеживания реальных «объектов».
Поскольку у меня нет опыта работы в отрасли, я полагал, что может быть несколько базовых типов кода, который делается чаще, чем я понимаю, но который просто не материализуется как внешние продукты.
Будут оценены как задачи программирования высокого уровня, так и конкретные операции низкого уровня.