En tant que personne dans le monde de HPC Venu du monde du développement web d'entreprise, je suis toujours curieux de voir comment les développeurs du "monde réel" tirent parti du calcul parallèle. C'est d'autant plus pertinent maintenant que toutes les puces deviennent multicore Il sera encore plus pertinent lorsqu'il y aura des milliers de cœurs sur une puce et non plus seulement quelques-uns.
Mes questions sont les suivantes :
- Comment cela affecte-t-il votre feuille de route logicielle ?
- Je suis particulièrement intéressé par les histoires réelles sur la façon dont le multicore affecte différents domaines logiciels, alors précisez le type de développement que vous faites dans votre réponse ( par exemple côté serveur, applications côté client, calcul scientifique, etc.)
- Que faites-vous avec votre code existant pour tirer parti des machines multicœurs, et quels défis avez-vous rencontrés ? Utilisez-vous OpenMP , Erlang , Haskell , CUDA , TBB , CUP ou autre chose ?
- Que prévoyez-vous de faire lorsque les niveaux de concurrence continueront à augmenter, et comment allez-vous gérer des centaines ou des milliers de cœurs ?
- Si votre domaine n'a pas bénéficient facilement du calcul parallèle, alors expliquer pourquoi est également intéressant.
Enfin, j'ai formulé cette question comme une question sur le multicœur, mais n'hésitez pas à parler d'autres types de calcul parallèle. Si vous portez une partie de votre application pour utiliser MapReduce ou si MPI sur de grands clusters est le paradigme pour vous, alors mentionnez-le également.
Mise à jour : Si vous répondez #5, dites si vous pensez que les choses changeront s'il y a plus de cœurs (100, 1000, etc.) que vous ne pouvez alimenter avec la bande passante mémoire disponible (étant donné que la bande passante est de plus en plus petite par cœur). Pouvez-vous toujours utiliser les cœurs restants pour votre application ?