2009-09-28 5 views
3

Je suis à la recherche d'une idée de projet en traitement distribué sur des systèmes basés sur Unix. Je souhaite utiliser uniquement le langage de programmation C. Je dois terminer le projet en 4 mois et cela fait partie de mon travail de cours. Quelqu'un peut-il m'aider avec une idée?Des idées pour un projet de traitement distribué?

Répondre

0

Oui. Pourquoi ne pas écrire un compilateur distribué?

Vous pouvez alors présenter une interface pour que les gens compilent des choses à la volée, et il sera passé à votre compilenet distribuer. Java est probablement bien adapté, et vous aurez l'occasion de faire des choses amusantes, comme être très attentif à la sécurité et ainsi de suite.

+1

Java ISN 't tout ce qui ressemble à C et la question dit' seulement C '...: D –

+0

Bizarre; J'ai raté ça :) Les mêmes règles s'appliquent cependant; sauf que c'est beaucoup plus difficile. –

1

Il est difficile de répondre sans connaître les performances, l'échelle du projet, ce que vous essayez d'accomplir, etc. Par exemple, est-ce une ou plusieurs tâches? Le projet est-il totalement ouvert? 4 mois est assez court, mais peut-être une sorte de problème de physique ou de maths. Le tri ou une sorte de travail de base de données peut être ennuyeux mais bénéfique. Découvrez mapreduce pour des idées! J'étais vraiment motivé par ce travail, personnellement. Nous avons utilisé le traitement distribué ici au travail, mais il est un vaste champ ..

4
  1. problèmes Cryptography
  2. Distribué Ray Tracer
  3. Chess AI (vraiment, AI pour tout jeu)
  4. Grand Prime Number Recherche
  5. Web crawler ou autre mécanisme de recherche
  6. Problème générique de résolution de problème (définition de problème à la volée, suivie de données de problème).

Note sur la dernière:

Un exemple serait si vous avez un site de jeu avec beaucoup de jeux de société que vous sortiez avec tout le temps. Vous ne voulez pas avoir à installer de nouveaux clients sur tous vos serveurs chaque fois que vous écrivez une nouvelle AI pour un jeu de plateau, vous avez donc un programme auquel vous pouvez envoyer de nouvelles IA et ensuite vous pouvez simplement envoyer les données du jeu et l'IA poussée sera utilisée pour résoudre le problème. Ceci est mieux utilisé pour les problèmes qui peuvent être divisés en plus petits morceaux.

0

Si vous voulez laisser votre marque et changer la façon dont on recherche sur le web,
regard sur B-arbres.

B-arbres et la progéniture/variantes sont le cheval de travail de l'Internet.
Google les utilise largement pour indexer le Web.

Les index/index de base de données sont des descendants B-Tree/variants.
Chaque système LAMP utilise une base de données et des index/index.

En outre, ils sont largement utilisés dans distribués VLDB (Very Large DataBases)
Peut-être que vous pouvez améliorer les bases de données existantes distribués (Cassandra et HBase)

Ce sont des objectifs ambitieux, mais pour moi, cela laisserait une paix durable marquez
dans la façon dont les données Web sont traitées, indexées et stockées.

Ecrivez une arborescence B + redondante distribuée, tolérante aux pannes, ou arborescente B *.

Lire le livre de Drozdek Structures de données et algorithmes en C++.
C'est une bonne enquête sur les arbres B.

Lisez à propos de sauter arbres
http://www.cs.huji.ac.il/~ittaia/papers/AAY-OPODIS05.pdf

Lisez à propos efficace B-tree indexation Basé pour le traitement Nuage de données
http://www.comp.nus.edu.sg/~ooibc/vldb10-cgindex.pdf

recherche Google "réseau B + Tree"
https://www.google.com/search?rlz=1C1CHKZ_enUS431US431&sourceid=chrome&ie=UTF-8&q=Network+B%2BTree

Questions connexes