Table des matières
Exemple
Sortie
Maison développement back-end C++ Utilisez pthread pour implémenter l'addition et la soustraction matricielles en C/C++

Utilisez pthread pour implémenter l'addition et la soustraction matricielles en C/C++

Aug 28, 2023 am 09:05 AM
矩阵 pthread ajout Soustraction

Utilisez pthread pour implémenter laddition et la soustraction matricielles en C/C++

Ici, nous verrons comment effectuer une addition et une soustraction matricielles à l'aide d'un environnement multithread. pthread est utilisé pour exécuter plusieurs threads simultanément en C ou C++.

Il existe deux matrices A et B. L'ordre de chaque matrice est (m x n). Chaque fil obtiendra chaque ligne et effectuera une addition ou une soustraction. Par conséquent, pour m lignes, il y a m threads différents.

Exemple

#include<iostream>
#include <pthread.h>
#include <cstdlib>
#include <cstdint>
#define CORE 3
#define MAX 3
using namespace std;
int AMat[MAX][MAX] = {{10, 20, 30},
   {40, 50, 60},
   {70, 80, 50}
};
int BMat[MAX][MAX] = {{80, 60, 20},
   {30, 20, 15},
   {10, 14, 35}
};
pthread_t thread[CORE * 2];
int add[MAX][MAX], sub[MAX][MAX];
void* addMatrices(void* arg) {
   intptr_t core = (intptr_t)arg;
   // Each thread computes 1/3rd of matrix addition
   for (int i = core * MAX / 3; i < (core + 1) * MAX / 3; i++) {
      for (int j = 0; j < MAX; j++) {
         add[i][j] = AMat[i][j] + BMat[i][j];
      }
   }
}
void* subtraction(void* arg) {
   intptr_t core = (intptr_t)arg;
   // Each thread computes 1/3rd of matrix subtraction
   for (int i = core * MAX / 3; i < (core + 1) * MAX / 3; i++) {
      for (int j = 0; j < MAX; j++) {
         sub[i][j] = AMat[i][j] - BMat[i][j];
      }
   }
}
void display(){
   cout << "Matrix A: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << AMat[i][j] << " ";
      }
      cout << endl;
   }
   cout << "\nMatrix B: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << BMat[i][j] << " ";
      }
      cout << endl;
   }
}
void displayRes(){
   cout << "\nAddition: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << add[i][j] << " ";
      }
      cout << endl;
   }
   cout << "\nSubtraction: " << endl;
   for(int i = 0; i < MAX; i++) {
      for(int j = 0; j < MAX; j++) {
         cout << sub[i][j] << " ";
      }
      cout << endl;
   }
}
main() {
   display();
   int step = 0;
   for (int i = 0; i < CORE; i++) {
      pthread_create(&thread[i], NULL, &addMatrices, (void*)step);
      pthread_create(&thread[i + CORE], NULL, &subtraction, (void*)step);
      step++;
   }
   for (int i = 0; i < CORE * 2; i++) {
      pthread_join(thread[i], NULL);
   }
   displayRes();
}
Copier après la connexion

Sortie

Matrix A:
10 20 30
40 50 60
70 80 50
Matrix B:
80 60 20
30 20 15
10 14 35
Addition:
90 80 50
70 70 75
80 94 85
Subtraction:
-70 -40 10
10 30 45
60 66 15
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explorer l'histoire et la matrice de l'intelligence artificielle : tutoriel sur l'intelligence artificielle (2) Explorer l'histoire et la matrice de l'intelligence artificielle : tutoriel sur l'intelligence artificielle (2) Nov 20, 2023 pm 05:25 PM

Dans le premier article de cette série, nous avons discuté des liens et des différences entre l’intelligence artificielle, l’apprentissage automatique, l’apprentissage profond, la science des données, etc. Nous avons également fait des choix difficiles concernant les langages de programmation, les outils et bien plus encore que toute la série utiliserait. Enfin, nous avons également introduit un peu de connaissances matricielles. Dans cet article, nous aborderons en profondeur la matrice, le cœur de l’intelligence artificielle. Mais avant cela, comprenons d’abord l’histoire de l’intelligence artificielle. Pourquoi avons-nous besoin de comprendre l’histoire de l’intelligence artificielle ? Il y a eu de nombreux booms de l’IA au cours de l’histoire, mais dans de nombreux cas, les énormes attentes quant au potentiel de l’IA ne se sont pas concrétisées. Comprendre l’histoire de l’intelligence artificielle peut nous aider à voir si cette vague d’intelligence artificielle créera des miracles ou n’est qu’une autre bulle sur le point d’éclater. nous

Comment calculer le déterminant d'une matrice ou d'un ndArray en utilisant numpy en Python ? Comment calculer le déterminant d'une matrice ou d'un ndArray en utilisant numpy en Python ? Aug 18, 2023 pm 11:57 PM

Dans cet article, nous allons apprendre comment calculer le déterminant d'une matrice à l'aide de la bibliothèque numpy en Python. Le déterminant d'une matrice est une valeur scalaire qui peut représenter la matrice sous forme compacte. C'est une quantité utile en algèbre linéaire et a de nombreuses applications dans divers domaines, notamment la physique, l'ingénierie et l'informatique. Dans cet article, nous aborderons d’abord la définition et les propriétés des déterminants. Nous apprendrons ensuite comment utiliser numpy pour calculer le déterminant d'une matrice et verrons comment il est utilisé en pratique à travers quelques exemples. Le déterminant de la matrice est une valeur scalaire qui peut être utilisée pour décrire la propriété

Programme Python pour calculer la somme des éléments diagonaux droits d'une matrice Programme Python pour calculer la somme des éléments diagonaux droits d'une matrice Aug 19, 2023 am 11:29 AM

Python est un langage de programmation généraliste populaire. Il est utilisé dans divers secteurs, notamment les applications de bureau, le développement Web et l’apprentissage automatique. Heureusement, Python possède une syntaxe simple et facile à comprendre qui convient aux débutants. Dans cet article, nous utiliserons Python pour calculer la somme de la diagonale droite d'une matrice. Qu'est-ce qu'une matrice ? En mathématiques, nous utilisons un tableau ou une matrice rectangulaire pour décrire un objet mathématique ou ses propriétés. Il s'agit d'un tableau ou d'un tableau rectangulaire contenant des nombres, des symboles ou des expressions disposés en lignes et en colonnes. Par exemple -234512367574 Il s'agit donc d'une matrice de 3 lignes et 4 colonnes, exprimée sous la forme d'une matrice 3*4. Or, il y a deux diagonales dans la matrice, la diagonale primaire et la diagonale secondaire.

Comment écrire du code d'addition Python_Tutoriel d'écriture de code d'addition Python Comment écrire du code d'addition Python_Tutoriel d'écriture de code d'addition Python Apr 02, 2024 pm 06:16 PM

1. Ouvrez d’abord la page d’édition Python en ligne. 2. Entrez ensuite le code du programme dans la zone du programme. 3. Cliquez ensuite sur Exécuter dans le coin supérieur gauche, entrez le premier ajout, appuyez sur Entrée et entrez le deuxième ajout. 4. Enfin, appuyez sur Entrée pour obtenir la somme des deux additions. Il s’agit d’un simple code d’ajout de python.

Programme Python pour multiplier deux matrices à l'aide de tableaux multidimensionnels Programme Python pour multiplier deux matrices à l'aide de tableaux multidimensionnels Sep 11, 2023 pm 05:09 PM

Une matrice est un ensemble de nombres disposés en lignes et en colonnes. Une matrice avec m lignes et n colonnes est appelée une matrice mXn, et m et n sont appelés ses dimensions. Une matrice est un tableau à deux dimensions créé en Python à l'aide de listes ou de tableaux NumPy. En général, la multiplication matricielle peut être effectuée en multipliant les lignes de la première matrice par les colonnes de la deuxième matrice. Ici, le nombre de colonnes de la première matrice doit être égal au nombre de lignes de la deuxième matrice. Scénario d'entrée et de sortie Supposons que nous ayons deux matrices A et B. Les dimensions de ces deux matrices sont respectivement 2X3 et 3X2. La matrice résultante après multiplication aura 2 lignes et 1 colonne. [b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

Divisez deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo Divisez deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo Sep 21, 2023 pm 12:41 PM

Dans ce problème, il suffit de diviser deux entiers sans utiliser les opérateurs de multiplication, de division et de modulo. Bien que nous puissions utiliser des opérations d’addition, de multiplication ou de bits. L’énoncé du problème indique que nous obtiendrons deux entiers x et y. Sans utiliser la multiplication, la division ou l'opérateur modulo, nous devons déterminer le quotient de x divisé par y. Exemple d'entrée : x=15, y=5 Sortie : 3 Entrée : x=10, y=4 Sortie : 2 Entrée : x=-20, y=3 Sortie : -6 Méthode Méthode 1 (utiliser des mathématiques simples) ici Dans ce méthode, nous utiliserons un algorithme mathématique simple. Voici une explication étape par étape des étapes que nous suivrons : nous continuerons à soustraire le diviseur (c'est-à-dire y) du dividende (c'est-à-dire x) jusqu'à ce que x soit supérieur ou égal à y. quand y est supérieur à x

Compétences en matière d'exploitation de base de données Oracle : explication détaillée de l'opération de soustraction Compétences en matière d'exploitation de base de données Oracle : explication détaillée de l'opération de soustraction Mar 02, 2024 pm 06:15 PM

En tant que puissant système de gestion de bases de données relationnelles, la base de données Oracle fournit une multitude d'opérations informatiques pour répondre aux besoins des utilisateurs. Dans les opérations quotidiennes de base de données, l'opération de soustraction est une opération courante et importante. Elle peut nous aider à mettre en œuvre l'opération de soustraction des données pour obtenir les résultats dont nous avons besoin. Cet article discutera en détail des techniques liées aux opérations de soustraction dans la base de données Oracle et donnera des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser cette fonction. 1. Concepts de base des opérations de soustraction dans les données Oracle

Programme C pour comparer deux matrices pour l'égalité Programme C pour comparer deux matrices pour l'égalité Aug 31, 2023 pm 01:13 PM

L'utilisateur doit saisir l'ordre des deux matrices ainsi que les éléments des deux matrices. Ensuite, comparez les deux matrices. Deux matrices sont égales si les éléments et les tailles de la matrice sont égaux. Si les matrices sont de taille égale mais pas égales en éléments, alors les matrices s'avèrent comparables mais pas égales. Si les tailles et les éléments ne correspondent pas, les matrices d'affichage ne peuvent pas être comparées. Le programme suivant est un programme C, utilisé pour comparer si deux matrices sont égales-#include<stdio.h>#include<conio.h>main(){ intA[10][10],B[10][10] ; dans

See all articles