News:

Dal team di PeppermintOS ecco Peppermint Classic ... l'esperienza della vecchia Peppermint 10 ma su base debian 12

Menu principale

Calcolo Distribuito?

Aperto da Hanck, Sabato 14 Febbraio 2015, 22:16:00

Discussione precedente - Discussione successiva

Hanck

Ciao a tutti.
Volevo provare a fare un software per il calcolo distribuito. Il risultato che vorrei ottenere è un server, che impostato con i dati che devono essere elaborati, mandi ai vari client il range di dati su cui lavorare. Vorrei che risultasse il più "astratto" possibile, in modo che con qualche riga di codice si può adattare a qualunque funzione.
Ho già qualche esperienza coi socket, ma quello che mi preoccupa di più è il lato server: per gestire i vari client pensavo di forkare ogni volta che c'è una nuova connessione. da quì il problema di come gestire la memorizzazione dell'obbiettivo. Mi spiego meglio: se per esempio sto facendo un certo calcolo, su un certo range di numeri, mando ad ogni client un blocco diverso di dati da analizzare. Come gestisco i vari blocchi in modo da evitare che un blocco venga calcolato due volte, come potrebbe magari accadere utilizzando un file con salvate le informazioni (due o più fork potrebbero leggere la stessa cosa nello stesso momento)?
Ogni altro consiglio è apprezzato.

evilwillneverdie

Hai detto nulla, credo tu ti stia imbattendo davvero in una grande avventura. Comunque che io sappia il punto di riferimento per il calcolo distribuito è l'università di Berkeley, secondo me ti converrebbe andare a trovarli sul loro portale di BOINC e chiedere info li.  Qualche indirizzo lo potresti trovare anche sul portale italiano
http://www.boincitaly.org/
:ciao: fai sapere come procede!

Hanck

Sto iniziando a programmare, ma sorge il primo dubbio: come implemento un multiclient usando i socket? si può fare un array di socket? se si come? ci sono altri modi?
non posso utilizzare un solo socket e chiudere la connessione ogni tot perché mi serve un flusso quasi continuo.

monkey9.3

le socket sono struct (stai programmando in C?) si puo fare un array di struct
comunque ti suggerisco di lavorare con i threads
"if you think education is expensive, try ignorance"
Derek Bok