2009-06-09 6 views
0

Je n'ai pas l'argent pour construire mon propre système de lame, mais je voudrais entrer dans la programmation concurrente et distribuée (pensez CCR/DSS, Hadoop, Project Voldemort, etc.).Qu'est-ce qu'une bonne configuration matérielle pour programmer des applications simultanées et distribuées?

J'ai actuellement un Q6600 avec 4 Go avec des disques durs séparés mais c'est à peu près tout. Bien que je puisse écrire des programmes multithread, je ne peux pas tester correctement les systèmes de fichiers distribués/les magasins de valeurs-clés et rechercher les goulots d'étranglement associés (accès au disque, réseau, etc.).

Quelqu'un a-t-il des recommandations? Acheter des petites boîtes bon marché et mettre en place un mini réseau? Ou peut-être une seule boîte avec deux i7 et ESX et un réseau simulé?

modifier:

Je suis actuellement en utilisant VirtualBox et VmWare et cela ne semble pas assez bon pour moi, corrigez-moi si je me trompe: Les disques durs peuvent verrouiller par exemple, que ce soit parce que deux machines virtualisées exécutées sur eux, ou parce que tous les accès au disque dur sont canalisés par le même contrôleur hdd. Le réseau est entièrement virtuel, donc pas de test réel ici non plus.

Si je pars sur la voie de la virtualisation, que recommanderiez-vous pour que je puisse me rapprocher le plus possible de la «vraie vie»?

+0

Les accès au disque dur peuvent être acheminés par le même contrôleur, mais dans un ordre arbitraire. Avoir plusieurs processus demandant IO produira un ordre essentiellement aléatoire des demandes individuelles au niveau du bloc. Cela étant dit, vous ne pouvez pas vraiment accéder à la vie réelle avant de le faire pour de vrai. Vous devriez être en mesure d'attraper la plupart des problèmes de synchronisation en utilisant la virtualisation comme une alternative bon marché. – Kekoa

Répondre

0

Virtualise pour vos tests de système distribué. Il est beaucoup plus facile de «tirer la fiche» sur une machine, de déconnecter le câble réseau, etc.

Sun VirtualBox est une excellente machine virtuelle gratuite que j'ai trouvé extrêmement pratique pour le développement. La plupart d'entre eux est également Open Source, si vous y êtes.


En ce qui concerne la partie multi-thread, il est effectivement plus facile - toujours test avec plus de threads logiciels que votre nombre de threads matériels. Et puis, juste pour vous amuser, faites quelque chose comme écrire un fichier de 10 Go sur votre disque dur, brancher/débrancher le matériel pour éteindre le programmateur. Vous obtiendrez des résultats surprenants.

Questions connexes