Recientemente comencé a trabajar en un proyecto para establecer la mejor forma de aprovechar la potencia de procesamiento disponible en las tarjetas gráficas modernas para la programación general. Parece que la programación GPU de propósito general de campo tiene un gran sesgo hacia aplicaciones científicas con mucha matemática pesada, ya que encaja bien con el modelo computacional de la GPU. Todo esto está bien y bien, pero la mayoría de las personas no dedican todo su tiempo a ejecutar software de simulación y similares, así que pensamos que sería posible crear una base común para construir fácilmente software habilitado para GPU para las masas.¿Qué tan bien las tareas de programación comunes se traducen en GPU?
Esto lleva a la pregunta que me gustaría plantear; ¿Cuáles son los tipos de trabajo más comunes realizados por los programas? No es un requisito que el trabajo se traduzca muy bien a la programación de GPU, ya que estamos dispuestos a aceptar mejoras modestas en el rendimiento (mejor que nada, ¿no?).
Hay un par de temas que tenemos en mente ya:
- gestión de datos - La manipulación de grandes cantidades de datos de bases de datos y de otro tipo.
- Programas del tipo de hoja de cálculo (Está relacionado de alguna manera con el anterior).
- Programación de GUI (aunque podría ser imposible acceder al código relevante ).
- Algoritmos comunes como clasificación y búsqueda.
- colecciones común (y su integración con la manipulación de datos algoritmos)
¿Qué otras tareas de codificación son muy comunes? Sospecho que gran parte del código que se está escribiendo pertenece a la categoría de gestión de inventario y de otro modo al seguimiento de 'objetos' reales.
Como no tengo experiencia en la industria, pensé que podría haber una cantidad de tipos básicos de código que se realiza con más frecuencia de lo que creo pero que simplemente no se materializa como productos externos.
Se apreciarán tanto las tareas de programación de alto nivel como las operaciones específicas de bajo nivel.
No pude evitar añadir un poco de teoría a la discusión: los problemas que funcionan bien con GPGPU suelen ser en la clase de complejidad NC: http://en.wikipedia.org/wiki/NC_(complexity) – pg1989