¿Qué áreas de CS tienen la fruta más baja para la investigación?

¡Imagina un grupo de estos!

1) Algoritmos distribuidos y estructuras de datos.

Esta es una fruta de bajo costo, ya que podemos obtener acceso barato a grupos de máquinas de productos básicos en estos días y tenemos décadas de investigación previa sobre computación paralela y distribuida a nuestra disposición. Por otro lado, estamos obteniendo más y más datos que ya no caben en la jerarquía de memoria de una sola computadora, e incluso si los cuellos de botella de comunicación se resuelven milagrosamente, siempre estaremos limitados por las restricciones físicas de un solo nodo de computación [1 ]

Para empezar, vea la charla del usuario de Quora: Programación en la nube: de Doom and Gloom a BOOM y Bloom : http://neilconway.org/talks/boom…

2) Bases de datos distribuidas

Consulte ¿Cuáles son los mejores temas de investigación recomendados en bases de datos según las tecnologías de punta y las tendencias de investigación recientes?

3) Sistemas de archivos distribuidos

Consulte ¿Cuáles son los mejores recursos para aprender sobre los sistemas de archivos distribuidos?

4) Análisis numérico distribuido

Consulte ¿Cuáles son los mejores recursos para el análisis numérico distribuido / algoritmos matriciales?

5) Optimización convexa distribuida

Consulte ¿Cuáles son algunos buenos recursos para aprender sobre la optimización distribuida?

6) Procesamiento de flujo distribuido

Vea ¿Cuáles son algunos buenos recursos para aprender sobre la minería de flujo? ¿Por qué?

7) Aprendizaje automático distribuido
Por ejemplo, técnicas de conjunto como bosques aleatorios o algoritmos de consenso con aplicaciones en el aprendizaje de idiomas.

también escala: ¿Cuáles son algunos recursos introductorios para aprender sobre el aprendizaje automático a gran escala? ¿Por qué?

8) Inferencia distribuida y aprendizaje de estructura en modelos gráficos
por ejemplo, algoritmos paralelos para redes bayesianas: página en iastate.edu

9) Lógica distribuida y lenguajes específicos de coordinación
Ej. Lenguajes de coordinación de Gelernter y Carriero:
http://dl.acm.org/citation.cfm?i… y http://www.lindaspaces.com/book/

10) Optimización combinatoria distribuida
Por ejemplo, problemas de búsqueda, coincidencia y flujo de red en grandes gráficos (visualización)
http://en.wikipedia.org/wiki/Mat…,
pruebe el emparejamiento bipartito en línea en las entradas de transmisión, es un problema divertido con muchas aplicaciones en bioinformática (por ejemplo, el ensamblaje del genoma se reduce al emparejamiento máximo en el gráfico bipartito, vea Gemelos)

11) Inteligencia artificial distribuida: aprendizaje de enjambres y evolución, por ejemplo, imitando colonias bacterianas e inteligencia microbiana. Genética de poblaciones (variación genética, deriva, mutación, selección) aplicada a sistemas multiagente. Aprendizaje de refuerzo en un entorno distribuido.

12) Algoritmos cuánticos distribuidos, por ejemplo, para sincronización de reloj

13) La codificación de red es divertida, con algunos resultados recientes muy elegantes, como el código fuente. Consulte: Teoría de la información de red y Teoría de la información, inferencia y algoritmos de aprendizaje (el último capítulo sobre códigos en línea)

14) Monedas digitales descentralizadas (por ejemplo, bitcoin)

15) Compiladores para sistemas paralelos y distribuidos (por ejemplo, página en cmu.edu, X10, Chapel, C-to-gates (C a HDL) y compiladores / tiempo de ejecución para sistemas heterogéneos (por ejemplo, FPGA + CPU + GPU)), lenguajes de programación para sistemas informáticos distribuidos

16) Sistemas operativos distribuidos
Por qué el centro de datos necesita un sistema operativo
Computación Grid con Plan 9

17) Robótica distribuida y redes de sensores
DRLWiki

18) Ingeniería neuronal

19) Codificación distribuida escasa

20) redes de memoria

también

  • ¿Cuáles son algunos buenos recursos para aprender sobre computación distribuida? ¿Por qué?
  • Un caso para NOW (Redes de estaciones de trabajo, 1995): http://www.ncic.ac.cn/~majie/Pap…
  • Dean, diseños, lecciones y consejos de la construcción de grandes sistemas distribuidos : http://www.cs.cornell.edu/projec…
  • Gray, What Next – Una docena de objetivos de investigación de tecnología de la información : http://arxiv.org/ftp/cs/papers/9…
  • Langford, Instrucciones de investigación para aprendizaje automático y algoritmos : http://cacm.acm.org/blogs/blog-c…
  • Taller NSF sobre algoritmos en el campo (2011): https://sites.google.com/site/al…
  • MMDS 2010. Taller sobre algoritmos para conjuntos de datos masivos modernos http://www.stanford.edu/group/mmds/
  • Taller de NIPS 2010 sobre aprendizaje en núcleos, grupos y nubes: http://lccc.eecs.berkeley.edu/
  • Ullman, Minería Conjuntos de datos masivos : http://infolab.stanford.edu/~ull…
  • Dongarra, sobre el futuro de HPC : http://www.netlib.org/utk/people…
  • O’Reilly, El estado del sistema operativo de Internet : http://radar.oreilly.com/2010/03…
  • Los principales problemas de datos abiertos de Facebook

[1] http://en.wikipedia.org/wiki/Moo…

Esto es una especie de no respuesta. Pero según David Karger, es realmente fácil obtener grandes ganancias aplicando la informática teórica a otros dominios. Echa un vistazo a http://mylimitedcoin.blogspot.com

David hace una contribución simplemente aplicando directamente la investigación de otros a un problema donde los investigadores no sabían que la solución ya existía. Ese es el epítome de la fruta baja.

Pero siempre, algunos de mis proyectos favoritos son donde la teoría proporciona las respuestas a problemas importantes en otras áreas. Acabamos de publicar un artículo en Nature Genetics que usaba algunas aplicaciones simples de flujo máximo para ayudar a los biólogos a visualizar las influencias “importantes” en redes biológicas (no necesitábamos encontrar soluciones integrales duras para NP porque los científicos querían ver todas las posibilidades en la mezcla). Antes de eso, aplicamos un hermoso documento JACM de Alon, etc., para encontrar caminos largos en un gráfico, a un problema en el procesamiento del lenguaje natural, diseñando un procedimiento para descubrir la mejor selección y ordenamiento de palabras para un resumen generado por máquina de un documento generado por máquina y publicó un artículo en NAACL, una conferencia de lingüística. Todavía recuerdo haber pensado, cuando leí por primera vez a Alon et al., que era una de las ideas más bonitas y más inteligentes que había visto en mucho tiempo, pero que nunca sería útil para nada práctico. Irónicamente, cuando mi colega Regina Barzilay me explicó el problema del idioma, era exactamente el problema de Alon sin necesidad de traducción; toda mi contribución fue saber que existía una solución

Nota : Esta respuesta está en la intersección de ¿Qué áreas de física tienen la fruta más baja para la investigación? y esta pregunta, ya que implica el uso de técnicas avanzadas de supercomputación para paralelizar la física computacional (simulaciones de N-cuerpos). El objetivo es escalar tales simulaciones hasta el punto de que se pueda simular la estructura biológica (por ejemplo, proteínas).

Un área específica de biología computacional que es de interés para muchas personas es el diseño computacional de medicamentos. La investigación en esta área ha obligado a los científicos informáticos a pensar fuera de la caja en términos de paralelismo y los límites de la computación. Los ejemplos de esfuerzos para resolver el problema del plegamiento de proteínas (que está estrechamente relacionado con el desarrollo de fármacos) incluyen el [correo electrónico protegido] [1] de Vijay Pande y el hardware especializado (Anton) desarrollado en DE Shaw Research [2]. David Shaw analiza esto en una conferencia de Stanford [3] dirigida a personas con antecedentes en EE y CS.

[1] http://folding.stanford.edu/
[2] http://www.deshawresearch.com
[3] Resumen: http://www.stanford.edu/class/ee
Video: http://ee380.stanford.edu/cgi-bi