Quali insidie e trucchi si verificano comunemente quando si inizia con la programmazione parallela e simultanea con C? [chiuso]

3

Sarò circa tre settimane che prenderò una classe di programmazione parallela che viene insegnata usando C per i compiti. Al momento ho un interesse abbastanza strong sull'argomento e le mie abilità in C non sono terribili, ma mi sento come se avessi bisogno di rispolverare la C, visto che l'ultima lezione che avevo richiesto attivamente la programmazione era 8 mesi fa. Ho seguito un corso per Embedded Systems in primavera, quindi ho compreso il concetto di deadlock, semafori e il problema dei "dati condivisi". Era principalmente il codice di programmazione iOS, quindi le mie abilità C non hanno visto molti usi da quel contesto.

Se dovessi indovinare in merito a un'area di ri-studio particolarmente severa, selezionerei i puntatori e l'allocazione della memoria in quanto sembra essere la sfida principale. Credo che la classe copra MPI e OpenMP, quindi potrei dare un'occhiata a quelli in anticipo. Sono sulla buona strada o mi manca qualcosa del tutto?

    
posta World Engineer 04.08.2011 - 00:02
fonte

2 risposte

3

Sono necessari i thread per la programmazione simultanea e non fanno parte del linguaggio C corretto. Piuttosto, fanno parte del sistema operativo. Vedi qui per ulteriori informazioni su come usare i thread su Unix e Linux.

Ora che sei nel threading, c'è un documento che parla in modo specifico dei problemi e delle insidie della programmazione concorrente usando i thread qui:

Il problema con i thread
link

    
risposta data 04.08.2011 - 04:19
fonte
1

Dopo anni di sviluppo embedded hard realtime, l'unico consiglio è che non è possibile testare la correttezza delle applicazioni concorrenti / parallele / multitraccia.

Il meglio che puoi fare con il test è dimostrare la presenza di problemi di concorrenza. Pertanto è necessario capire dove si stanno verificando le interazioni e dimostrare se sono di design robusti. Il più grande trucchetto non è limitare le interazioni al minimo indispensabile per svolgere il lavoro e girare più thread del necessario perché è facile.

    
risposta data 04.08.2011 - 11:17
fonte

Leggi altre domande sui tag