Dans la mise en réseau, nous partageons un fichier (pilote de disque) ou des bases de données. Mais comment partager le CPU ou la RAM sur le réseau.
networking
cpu
MJH
la source
la source
Réponses:
Pour ce faire, le ou les programmes accédant aux ressources CPU / RAM doivent être spécifiquement conçus pour accéder auxdites ressources. Un système configuré de cette manière s'appelle un cluster, et la façon typique de partager des ressources est avec un protocole appelé MPI (Message Passing Interface). C'est un téléchargement gratuit et son utilisation avec Linux peut produire un cluster puissant (peut-être même un super ordinateur) pour un coût minimal, mais encore une fois, il est inutile sauf si vous avez des programmes spécialement conçus pour tirer parti de MPI. Il existe de bons tutoriels de cluster, si vous êtes toujours intéressé, vous devriez en consulter un.
Éditer:
Je recommanderais le tutoriel ici si vous souhaitez configurer un cluster. J'ai créé un cluster en suivant ce tutoriel il y a environ un an et cela a plutôt bien fonctionné. Le tutoriel est un peu ancien, donc certains fichiers peuvent ne pas être exactement là où le tutoriel le dit (parfois les fichiers sont déplacés dans des distributions Linux différentes / plus récentes) mais si vous êtes le moins familier avec Linux, cela ne devrait pas être un problème. Le didacticiel utilise une ancienne version de MPI, mais j'ai utilisé la dernière version et je n'ai eu aucun problème qui n'était pas facilement résolu. Selon ce que vous faites, il peut y avoir un programme qui peut tirer parti de MPI. Je sais qu'il existe des programmes d'encodage vidéo et de calcul des nombres qui tirent parti du MPI et peuvent être téléchargés à partir de sources universelles.
la source
Vous pouvez partager la RAM à l'aide de disques RAM, mais cela ressemble à un partage de disques normaux, sauf qu'ils se trouvent dans la RAM d'un autre ordinateur. Il n'y a pas de moyen direct pour un ordinateur d'utiliser la RAM d'un autre ordinateur comme s'il s'agissait de sa propre RAM, mais il existe certaines façons d'utiliser la RAM d'un autre ordinateur. Plus à ce sujet dans le paragraphe suivant.
Quant au partage de CPU, c'est possible mais il n'y a pas de standard unique. Vous ne pouvez pas simplement le partager et laisser un autre ordinateur prendre les ressources nécessaires. Au lieu de cela, vous devez avoir des applications spécialement conçues qui peuvent fonctionner sur plusieurs ordinateurs à la fois. Ceci est souvent appelé calcul distribué et est utilisé par certains projets de recherche tels que SETI @ Home, Einstein @ Home, Climateprediction.net et bien d'autres.
Fondamentalement, les programmes fonctionnent de telle manière qu'il existe un serveur central qui distribue le travail qui doit être fait. Les ordinateurs du réseau téléchargent les unités de travail à partir de l'ordinateur central et les traitent. Après cet ordinateur central reçoit les résultats des clients et les fusionne en un résultat cohérent. De cette façon, les ordinateurs «partagent» les ressources CPU et RAM sur le réseau. L'inconvénient est que les programmes doivent être créés de manière à fonctionner sur le réseau et que l'informatique distribuée n'est pas actuellement assez populaire parmi les utilisations courantes pour un ordinateur, donc seul un petit nombre de programmes spécialisés le prennent en charge. D'un autre côté, il est couramment utilisé à des fins scientifiques car il est moins coûteux d'obtenir un grand nombre d'ordinateurs personnels ou de stations de jeu 3 que d'accéder à un ordinateur central.
la source
Vous êtes tombé sur un problème XY , vous ne devriez pas vous demander "comment puis-je partager des ordinateurs cpu et ram accros" mais "comment puis-je utiliser plusieurs ordinateurs pour accélérer mes rendus en utilisant ZZZZZ?"
Cela dépend fortement du logiciel que vous utilisez et de ce que vous rendez ( transcodez- vous de la vidéo ou rendez-vous un modèle / vidéo 3D?).
Pour prendre quelques exemples, le logiciel 3D gratuit Blender prend en charge le rendu distribué où vous pouvez avoir de nombreux ordinateurs travaillant tous ensemble pour générer une sortie. Si vous effectuez un rendu vidéo, une recherche rapide sur Google a trouvé le projet open source MediaEncodingCluster qui vous permet de rendre des fichiers vidéo et audio à l'aide de plusieurs ordinateurs.
la source
Le seul système d'exploitation que je connaisse qui permet de partager CPU / RAM est plan9. Là, vous pouvez exporter / monter presque n'importe quoi. Cela ne signifie pas pour autant que les performances sont bonnes.
la source
Ce serait une fonctionnalité intéressante pour partager cpu / ram pour des tâches sur le réseau. Actuellement, nous sommes toujours liés par de vieilles notions à garder les programmes dans la boîte où les choses se passent, mais nous pouvons autoriser plusieurs processeurs sur la même machine à accéder au même fragment de code. Nous avons une méthode (au moins) qui fait quelque chose comme ça. java sur les pages Web fonctionne en utilisant à la fois le serveur et le client, mais il est toujours verrouillé de manière serveur-client pour faire des choses (où le serveur contient la plupart des données). Ce dont nous avons besoin pour être en mesure d'affecter des tâches aux machines de la même manière que lorsque nous avons plusieurs processeurs (à l'exception de la machine qui fait le travail, un découpage de programme et un découpage de données doivent être affectés. Cela alourdit cependant la charge sur le réseau si les tâches elles-mêmes ne sont pas de nature simple et pourraient entraîner la formation de nouveaux goulots d'étranglement. J'aime l'idée
la source