Ir ao conteúdo
  • Cadastre-se

xAJSx

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

2
  1. /*Desenvolver um programa em OpenMP que popule aleatoriamente um vetor de 10.000 registros de números inteiros, de maneira paralela. Após, paralelamente, crie através de sections três regiões (uma para cada thread) para: a) efetuar a soma de todos os elementos do vetor; b) encontrar o maior valor do vetor e sua respectiva posição de armazenamento; c) contar a quantidade de números múltiplos de 7 armazenados no vetor.*/ #include <stdio.h> #include <stdlib.h> #include <omp.h> int main() { int i, j, k; //int soma, maior, multiplos7, posicao; int **V, **soma, **maior, **multiplos7; tamanho = 10; //Aloca o vetor V = malloc(tamanho*sizeof(int *)); soma = malloc(linhas*sizeof(int *)); maior = malloc(linhas*sizeof(int *)); multiplos7 = malloc(linhas*sizeof(int *)); //Região paralela que atribui valores as matrizes A e B #pragma omp parallel shared(V, i, tamanho) { #pragma omp for for (i = 0; i < tamanho; i++) { V[i] = i+1; } } #pragma omp parallel shared(V, tamanho, soma, maior, posicao, multiplos7) private (i, j, k) { #pragma omp sections { //1ª região com section #pragma omp section { for (int i = 0; i<tamanho; i++){ soma = soma + V[i]; } printf("soma: %i\n", soma); } //2ª região com section #pragma omp section { int maior = v[0]; for (int j = 0; j< tamanho; j++){ if (maior > v[j]){ maior = v[j]; posicao = j; } } printf("maior: %i\n", maior); printf("posicao do maior: %i\n", posicao); } //3ª região com section #pragma omp section { multiplos7 = 0; for (int k = 0; k< tamanho; k++){ if (v[k]%7==0){ multiplos7 = multiplos7 + 1; } } printf("Quantidade de multiplos de 7: %i\n", multiplos7); } } } //desaloca free(V); free(soma); free(maior); free(multiplos7); return(0); }
  2. xAJSx

    C fatorial com vetor em openmp

    @V!OLADOR Como eu faço para calcular o fatorial de cada elemento no vetor? Meu codigo está assim, ele está compilando e trazendo como resultado "0": #include <stdio.h> #include <stdlib.h> #include <omp.h> #define N 100000 double factorial(const int n) { if (n == 0) return 1; return n*factorial(n - 1); } int main() { int V[N], i, fatorial, fatorial_local; double f; #pragma omp parallel shared(V, fatorial) private(i, fatorial_local) { #pragma omp parallel for default(none) shared(V) for (int i = 0; i < N; i++) { V[i] = rand(); } } #pragma omp parallel for default(none) shared(V) for (int i = 0; i < N; i++) { double f = fatorial * V[i]; } printf("Fatorial é: %f\n", f); return(0); }
  3. xAJSx

    C fatorial com vetor em openmp

    Bom, estava testando aqui rapidamente e me apresentou um erro somente no "FACTORIAL". O código está assim: /*Desenvolver um programa em OpenMP que popule aleatoriamente um vetor de 100.000.000 registros de números inteiros em uma região paralela. Em outra região paralela, calcule para cada posição do vetor o seu fatorial. Calcule o speedup e a eficiência obtidos com 2 e 4 threads.*/ #include <stdio.h> #include <stdlib.h> #include <omp.h> #define N 100000 int main() { int V[N], i, fatorial, fatorial_local; double f; #pragma omp parallel shared(V, fatorial) private(i, fatorial_local) { #pragma omp parallel for default(none) shared(V) for (int i = 0; i < N; i++) { V[i] = i*V[i-1]; } #pragma omp parallel for default(none) shared(V) for (int i = 0; i < N; i++) { double f = factorial(V[i]); } } printf("Fatorial é: %f\n", f); return(0); } @V!OLADOR
  4. xAJSx

    C fatorial com vetor em openmp

    @V!OLADOR Olá, muito obrigado por me ajudar. Desculpe a burrice mas sou muito leigo nesse conteúdo e não entendi muito bem como implementar isso. Eu deveria excluir alguma parte do meu codigo ou somente soltar esse script dentro dele? Muito obrigado.
  5. Boa tarde pessoal. Preciso de uma ajuda nesse exercício sobre OPENMP. Esta compilando e me trazendo valores altos de mais. Podem me ajudar para verificar se está ok? Obrigado. /*Desenvolver um programa em OpenMP que popule aleatoriamente um vetor de 100.000.000 registros de números inteiros em uma região paralela. Em outra região paralela, calcule para cada posição do vetor o seu fatorial. Calcule o speedup e a eficiência obtidos com 2 e 4 threads.*/ #include <stdio.h> #include <stdlib.h> #include <omp.h> #define N 5 int main() { int V[N], i, fatorial, fatorial_local; fatorial = 1; #pragma omp parallel shared(V, fatorial) private(i, fatorial_local) { #pragma omp for for(i = 0; i < N; i++){ fatorial = fatorial * V[i]; } fatorial_local = 0; #pragma omp for for(i = 0; i < N; i++) fatorial = fatorial + V[i]; //Região Crítica #pragma omp critical fatorial = fatorial + fatorial_local; } printf("Fatorial é: %d\n", fatorial); return(0); }
  6. @NIGHT FALL Beleza, ela possui sim 8 pinos. Muito obrigado!
  7. Olá pessoal, tudo bem? Espero que sim! Recentemente fiz um upgrade em meu setup onde comprei um Ryzen 5 3600 e a placa-mãe b450m. Quero fazer mais um upgrade comprando uma RTX 2060 SUPER porém estou com medo de que a fonte (EVGA 430W com Certificado 80 Plus e PFC Ativo) não aguente todas as configurações que tenho e acabe dando algum problema para mim. Minha configuração atual é: - Ryzen 5 3600 - placa-mãe B450M - 2 pente de memória RAM de 4 GB DDR4 cada - Fone EVGA 430W com Certificado 80 Plus e PFC Ativo - gtx 950 2gb - 2 hd de 1 tb cada Vi que já tinha um post semelhante a esse meu porém meio antigo e pelo que falaram não havia lançado a RTX 2060 ainda. Será que consegue aguentar tranquilo até eu conseguir pegar outra fonte? Muito obrigado pela ajuda.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...