Skocz do zawartości

shooter

Stały użytkownik
  • Postów

    938
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez shooter

  1. shooter

    Geforce 8800 GTX / GTS

    Mi tam sie na ponczochach zbiera. Jasne, ze w srodku tez cos jest. Nie mam filtrow powietrza takich jak firma Micron. :)
  2. shooter

    Mpi

    Szanowny Ragnorze. Napisalem kod w MPI, dziala dla 1 procesu, ale nie chce dla wiekszej ilosci. Co jest nie tak? Bardzo prosze o porade. Wydaje mi sie, ze cos jest nie tak z MPI_Status. #include <cstdlib>#include <iostream>#include "matrix.h"#undef SEEK_SET#undef SEEK_END#undef SEEK_CUR#include <MPI/mpi.h>void senddata(double** a, double* b, int rank, int size, int msize, MPI_Status status){ int i; if(rank == 0) { for(i = 0;i < msize;i++) { if(i % size == 0) continue; a[i][msize] = b[i]; MPI_Send(a[i],msize+1,MPI_DOUBLE,(i % size),0, MPI_COMM_WORLD); MPI_Send(&(b[i]),1,MPI_DOUBLE,(i % size),0, MPI_COMM_WORLD); } } else { for(i = 0;i < msize;i++) { if(i % size != rank) continue; MPI_Recv(a[i],msize+1,MPI_DOUBLE,0,0, MPI_COMM_WORLD, &status); MPI_Recv(&(b[i]),1,MPI_DOUBLE,0,0, MPI_COMM_WORLD, &status); b[i] = a[i][msize]; } }}void senddataback(double** a, double* b, int rank ,int size, int msize, MPI_Status status){ int i; if(rank == 0) { for(i = 0;i < msize;i++) { if(i % size == 0) continue; b[i] = a[i][msize]; MPI_Recv(a[i],msize+1,MPI_DOUBLE, (i % size), 0, MPI_COMM_WORLD, &status); MPI_Recv(&(b[i]),1,MPI_DOUBLE,(i % size), 0, MPI_COMM_WORLD, &status); } } else { for(i = 0;i < msize;i++) { if(i % size != rank) continue; MPI_Send(a[i],msize+1,MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); MPI_Send(&(b[i]),1,MPI_DOUBLE, 0, 0, MPI_COMM_WORLD); a[i][msize] = b[i]; } }}void eliminate(double** a , double* b, int rank ,int size, int msize){ int i,j,k; for(k = 0; k < msize;k++) { if(k % size == rank) { if(a[k][k] == 0) { cout <<"dzielenie przez 0"; MPI_Finalize(); exit(0); } /* prepare my row */ for(j = k + 1;j < msize;j++) { a[k][j] = a[k][j]/a[k][k]; } b[k] = b[k]/a[k][k]; a[k][k] = 1; /* end prepare */ a[k][msize] = b[k]; MPI_Bcast(a[k],msize+1,MPI_DOUBLE, rank, MPI_COMM_WORLD); for(i = k + 1;i < msize;i++) { if(i % size != rank)continue; for(j = k + 1;j < msize;j++) { a[i][j] = a[i][j] - a[i][k] * a[k][j]; } b[i] = b[i] - a[i][k] * b[k]; a[i][k] = 0; } } else { MPI_Bcast(a[k],msize+1,MPI_DOUBLE,k % size, MPI_COMM_WORLD); MPI_Bcast(&(b[k]),1,MPI_DOUBLE,k % size, MPI_COMM_WORLD); b[k] = a[k][msize]; for(i = k + 1;i < msize;i++) { if(i % size != rank)continue; for(j = k + 1;j < msize;j++) { a[i][j] = a[i][j] - a[i][k] * a[k][j]; } b[i] = b[i] - a[i][k] * b[k]; a[i][k] = 0; } } }}void backward(double** a, double* b, int msize){ int i,j,k; for(i = msize-1;i >= 0;i--) { for(k = i+1;k < msize;k++) { b[i] = b[i] - a[i][k]; } for(j = i - 1;j >= 0;j--) { a[j][i] = a[j][i] * b[i]; } }}int main( int argc, char *argv[] ){ int id_proc, num_procs; int size; //rozmiar macierzy double wtime1, wtime2; size = 1500; double** m; double* V; MPI_Init(&argc,&argv); MPI_Comm_size(MPI_COMM_WORLD,&num_procs); MPI_Comm_rank(MPI_COMM_WORLD,&id_proc); MPI_Status status; if(id_proc == 0) { m = new double* [size]; V = new double [size]; for(int i=0; i<size; i++) m[i] = new double[size]; for (int i=0; i<size; i++) for(int j=0; j<size+1; j++) m[i][j] = 1+rand()%10; } MPI_Bcast(&size, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD); if(id_proc != 0) { m = new double* [size]; V = new double [size]; for(int i=0; i<size; i++) m[i] = new double[size]; } senddata(m, V, id_proc, num_procs, size, status); eliminate(m, V, id_proc, num_procs, size); senddataback(m, V, id_proc, num_procs, size, status); backward(m, V, size); MPI_Finalize(); //system("PAUSE"); return 0;}
  3. 8 rdzeni z czego kazdy 2 watki rownolegle przetwarza
  4. shooter

    C2d E6750 - Fsb 1333

    Przy 3,4 GHz 1.41V po Orthosie mam 73-74 st C w CoreTemp.
  5. Mysle ze TDK+R sa niezle. Lepsze od Benq. A jaka wasza opinia?
  6. NCQ nie powoduje najmniejszego wzrostu wydajnosci w zastosowaniach domowych. Jesli masz serwer to pewnie tak. NCQ ma na celu nie wzrost wydajnosci a zmniejszenie zuzycia dysku - mniej obrotow talezy przy dostepie do danych.
  7. Te resety to moze byc wina zasilki a nie MoBo.
  8. Znaczący wzrost wydajności? Nie sądzę.
  9. shooter

    Geforce 8800 GTX / GTS

    Jesli tylko da.
  10. shooter

    Geforce 8800GT 256/512MB

    Ja sciagnalem Toola z 3dGuru, skopiowalem do katalogu z gra, ustawilem patha i dziala.
  11. shooter

    Geforce 8800GT 256/512MB

    Podales sciezke do gry? (file/set path)
  12. shooter

    Geforce 8800GT 256/512MB

    52.86 FPS przy 1024x768 i detalach High. Moja grafa to 8800gts 640MB kręcony na 648/1512/920. Jak widać stary GTSik w Crysisie nie ustępuje dużo 8800GT - w oparciu o wyniki dia8el'a. :)
  13. shooter

    Geforce 8800 GTX / GTS

    Proponuje zapodac filtry na obudowe z ponczoch dziewczyny/zony. Sprawdzaja sie znakomicie.
  14. shooter

    Mpi

    Chce to zrobic dla 2 procesorow. Zeby tylko dzialalo.
  15. shooter

    Mpi

    Wymyśliłem coś takiego. Pewnie nie do końca poprawne, ale ... //Gauss void gauss(double** m, int size){ double alfa; for(int k=0; k<size; k++) { for(int i=k+1; i<size; i++) { if(m[k][k] == 0) if(partial_pivoting(m, k, size)) { cout << endl << "Macierz jest osobliwa." << endl; break; } alfa = m[i][k] / m[k][k]; #pragma omp parallel sections { #pragma omp section { for(int j=k; j<=size; j+=2) m[i][j] = m[i][j] - alfa * m[k][j]; } #pragma omp section { for(int j=k+1; j<=size; j+=2) m[i][j] = m[i][j] - alfa * m[k][j]; } } } } }
  16. shooter

    Mpi

    Z implementacją sobie poradziłem. Komendy MPI dzialaja. Mam teraz problem - zrownoleglic w MPI eliminacje Gaussa. W openMP jeszcze jakos bym to napisal ale w MPI ciezko. Oto Gauss: int partial_pivoting(double **m, int size, int a){ double max=m[a][a]; double tmp; int index; bool zm=false; for (int i=1; i<size-a; i++) if(fabs(m[a+i][a])>max) { max=fabs(m[a+i][a]); index=a+i; zm=true; } for(int i=a; i<=size-a; i++) //zamiana wierszy { tmp=m[a][i]; m[a][i]=m[index][i]; m[index][i]=tmp; } if(zm) return 0; else return 1;}//////////////////////////////////////////////////////////////////////////////////Gaussvoid gauss(double** m, int size){ double alfa; for(int k=0; k<size; k++) { for(int i=k+1; i<size; i++) { if(m[k][k] == 0) if(partial_pivoting(m, k, size)) { cout << endl << "Macierz jest osobliwa." << endl; break; } alfa = m[i][k] / m[k][k]; for(int j=k; j<=size; j++) m[i][j] = m[i][j] - alfa * m[k][j]; } } } chodzi o zrownoleglenie samej funkcji Gauss. Masz moze pomysł jak to rozpracować z MPI?
  17. shooter

    Mpi

    Chodzi mi jeszcze o implementacje. Przyklad dziala, ale nie moge zlinkowac programu, gryz wyskakuje błąd: mpi.obj : error LNK2019: unresolved external symbol "void __cdecl MPI::Init(int &,char * * &)" (?Init@MPI@@YAXAAHAAPAPAD@Z) referenced in function _main. Moglbys napisac jak implementowales MPI?
  18. shooter

    Geforce 8800 GTX / GTS

    Najlepiej pozycz od kumpla, postaw za to piwko, i potestuj z kilka godzinek.
  19. shooter

    Resety P4p800 S-x

    Nie kupuj zasilki tylko pozycz najpierw jakas by przetestowac czy to zasilka jest zrodlem problemu.
  20. shooter

    8800gts - 65nm

    Racja - Penryn ciagnie w gore sporo. Bez przesady, gts 512 jest porownywalny, miejscami lepszy od 8800ultra/gtx
  21. Prawie. To T2R P35 i chlodzonko z 680i LT. Brak pomyslow.
  22. shooter

    Geforce 8800 GTX / GTS

    Co taka cisza w temacie? Juz wszyscy uzytkownicy forum posprzedawali 8800gts 320/640 lub gtx?
  23. Nosz kurcze DFI nie wzielo sobie do serca nauczki. Przeciez konstrukcja na 680i LT miala identyczne rozmieszczenie elementow i byl taki sam problem z coolerem na NB. Plyta cholernie sie grzala co skutkowalo duza temp. na NB, ktory nie mial dostatecznego przeplywu powietrza i byl "osaczony" przez goraca grafe i CPU cooler. Mogli przeciez przesunac slot grafiki a oni uparcie pchaja na chama ile wlezie.
  24. shooter

    Mpi

    Dzieki wielkie Ragnorze!!! MPI dziala az milo. Na C2D przy 2 watkach dziala 2 razy szybciej. Czyli wszystko OK. POZDRAWIAM i zycze najlepszego!!!
  25. Mi na PRO pokazuje temp. na NB. Logiczne, ze jest tam czujnik.
×
×
  • Dodaj nową pozycję...