Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

Discussione: Bitonic Sort & C

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63

    Bitonic Sort & C

    Salve a tutti
    sto sviluppando un algoritmo parallelo (utilizzando MPI) di ordinamento, il bitonic sort. Ho trovato un codice scritto in c su internet e sto cercando di capirlo. Ho trovato questa istruzione e non riesco a capire il significato. Potreste illuminarmi voi?



    if (((id & i) == 0 && id > partner)) mi interessa sapere il significato dell'operatore bit a bit "&". Cioe' so come funziona ma non riesco a capire il senso in questo if...

    Grazie a tutti

    Cordiali saluti

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Esegue l'and bit a bit tra id e i e se è 0 ...

    Cosa non capisci?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    si capito.. ma a livello logico che significato ha?
    Dice tipo se il risultato è pari o dispari o cosa?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non dice nulla se non si sa il valore di i ...

    In generale testa il valore di uno o più bit e se questi sono tutti a zero ...

    Se i vale 1, allora controlla se id è pari o dispari (in questo caso controlla se è pari)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    i si trova in un for...

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da peppej89
    i si trova in un for...
    Che vuol dire?

    E id quanto vale?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    l'id sarebbe l'id dei processi.. xke sto utilizzando MPI per calcolo parallelo.. Tutto il codice che sto cercando di capire è qst:

    passiLog=0;

    for (i = 2; i <= num_processori; i *= 2) {
    passiLog++;
    distanzaProcessi = i/2;

    for (j = 0; j < passiLog; j++)
    {
    partner = id ^ distanzaProcessi; // OR ESCLUSIVO BIT A BIT

    MPI_Sendrecv(myVettore, porzione, MPI_INT, partner, 100,
    vettorePartner, porzione, MPI_INT, partner, 100, MPI_COMM_WORLD, &status);
    if (((id & i) == 0 && id > partner) || ((id & i) != 0 && id < partner)) // AND BIT A BIT
    co_ex=1; // CO-EX-HI
    else
    co_ex=0; // CO-EX-LO


    merge(porzione,myVettore,vettorePartner,co_ex);

    distanzaProcessi = distanzaProcessi/2;

    }
    }

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cosa rappresenta co_ex ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    63
    quella è una variabile diciamo "booleana" che mi serve avanti per l'algoritmo bitonic

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Sì, è una variabile che ti serve, ma non ti avevo chiesto se ti serve ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.