Jadual Kandungan
Contoh
Output
Rumah pembangunan bahagian belakang C++ Gunakan pthread untuk melaksanakan penambahan dan penolakan matriks dalam C/C++

Gunakan pthread untuk melaksanakan penambahan dan penolakan matriks dalam C/C++

Aug 28, 2023 am 09:05 AM
matriks pthread tambahan Penolakan

Gunakan pthread untuk melaksanakan penambahan dan penolakan matriks dalam C/C++

Di sini kita akan melihat cara melakukan penambahan dan penolakan matriks menggunakan persekitaran berbilang benang. pthread digunakan untuk melaksanakan berbilang benang secara serentak dalam C atau C++.

Terdapat dua matriks A dan B. Susunan setiap matriks ialah (m x n). Setiap benang akan mendapat setiap baris dan melakukan penambahan atau penolakan. Oleh itu, untuk m baris, terdapat m benang yang berbeza.

Contoh

#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();
}
Salin selepas log masuk

Output

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
Salin selepas log masuk

Atas ialah kandungan terperinci Gunakan pthread untuk melaksanakan penambahan dan penolakan matriks dalam C/C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Meneroka Sejarah dan Matriks Kepintaran Buatan: Tutorial Kepintaran Buatan (2) Meneroka Sejarah dan Matriks Kepintaran Buatan: Tutorial Kepintaran Buatan (2) Nov 20, 2023 pm 05:25 PM

Dalam artikel pertama siri ini, kami membincangkan hubungan dan perbezaan antara kecerdasan buatan, pembelajaran mesin, pembelajaran mendalam, sains data dan banyak lagi. Kami juga membuat beberapa pilihan sukar tentang bahasa pengaturcaraan, alatan dan banyak lagi yang akan digunakan oleh keseluruhan siri. Akhirnya, kami juga memperkenalkan sedikit ilmu matriks. Dalam artikel ini, kita akan membincangkan secara mendalam matriks, teras kecerdasan buatan. Tetapi sebelum itu, mari kita fahami dahulu sejarah kecerdasan buatan. Mengapa kita perlu memahami sejarah kecerdasan buatan? Terdapat banyak ledakan AI dalam sejarah, tetapi dalam banyak kes jangkaan besar untuk potensi AI gagal menjadi kenyataan. Memahami sejarah kecerdasan buatan boleh membantu kita melihat sama ada gelombang kecerdasan buatan ini akan mencipta keajaiban atau hanya gelembung lain yang akan pecah. kami

Bagaimana untuk mengira penentu matriks atau ndArray menggunakan numpy dalam Python? Bagaimana untuk mengira penentu matriks atau ndArray menggunakan numpy dalam Python? Aug 18, 2023 pm 11:57 PM

Dalam artikel ini, kita akan belajar cara mengira penentu matriks menggunakan perpustakaan numpy dalam Python. Penentu matriks ialah nilai skalar yang boleh mewakili matriks dalam bentuk padat. Ia merupakan kuantiti yang berguna dalam algebra linear dan mempunyai banyak aplikasi dalam pelbagai bidang termasuk fizik, kejuruteraan, dan sains komputer. Dalam artikel ini, kita akan membincangkan definisi dan sifat penentu terlebih dahulu. Kami kemudian akan belajar cara menggunakan numpy untuk mengira penentu matriks dan melihat cara ia digunakan dalam amalan melalui beberapa contoh. Penentu kefamatriks ialah nilai skala yang boleh digunakan untuk menerangkan sifat

Program Python untuk mengira jumlah unsur pepenjuru yang betul bagi matriks Program Python untuk mengira jumlah unsur pepenjuru yang betul bagi matriks Aug 19, 2023 am 11:29 AM

Bahasa pengaturcaraan tujuan umum yang popular ialah Python. Ia digunakan dalam pelbagai industri, termasuk aplikasi desktop, pembangunan web dan pembelajaran mesin. Nasib baik, Python mempunyai sintaks yang ringkas dan mudah difahami yang sesuai untuk pemula. Dalam artikel ini, kita akan menggunakan Python untuk mengira jumlah pepenjuru kanan matriks. Apakah matriks? Dalam matematik, kami menggunakan tatasusunan atau matriks segi empat tepat untuk menerangkan objek matematik atau sifatnya Ia adalah tatasusunan atau jadual segi empat tepat yang mengandungi nombor, simbol atau ungkapan yang disusun dalam baris dan lajur. Contohnya -234512367574 Oleh itu, ini ialah matriks dengan 3 baris dan 4 lajur, dinyatakan sebagai matriks 3*4. Kini, terdapat dua pepenjuru dalam matriks, pepenjuru primer dan pepenjuru sekunder

Cara menulis kod tambahan Python_Tutorial menulis kod tambahan Python Cara menulis kod tambahan Python_Tutorial menulis kod tambahan Python Apr 02, 2024 pm 06:16 PM

1. Mula-mula buka halaman suntingan python dalam talian. 2. Kemudian masukkan kod program di kawasan program. 3. Kemudian klik Jalankan di sudut kiri atas, masukkan addend pertama, tekan Enter, dan masukkan addend kedua. 4. Akhir sekali tekan Enter untuk mendapatkan jumlah dua tambahan. Ini adalah kod tambahan python yang mudah.

Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi Program Python untuk mendarab dua matriks menggunakan tatasusunan berbilang dimensi Sep 11, 2023 pm 05:09 PM

Matriks ialah satu set nombor yang disusun dalam baris dan lajur. Matriks dengan m baris dan n lajur dipanggil matriks mXn, dan m dan n dipanggil dimensinya. Matriks ialah tatasusunan dua dimensi yang dibuat dalam Python menggunakan senarai atau tatasusunan NumPy. Secara umum, pendaraban matriks boleh dilakukan dengan mendarab baris matriks pertama dengan lajur matriks kedua. Di sini, bilangan lajur matriks pertama hendaklah sama dengan bilangan baris matriks kedua. Senario input dan output Katakan kita mempunyai dua matriks A dan B. Dimensi kedua-dua matriks ini ialah 2X3 dan 3X2 masing-masing. Matriks yang terhasil selepas pendaraban akan mempunyai 2 baris dan 1 lajur. [b1,b2][a1,a2,a3]*[b3,b4]=[a1*b1+a2*b2+a3*a3][a4,a5,a6][b5,b6][a4*b2+a

Bahagi dua integer tanpa menggunakan pengendali pendaraban, pembahagian dan modulo Bahagi dua integer tanpa menggunakan pengendali pendaraban, pembahagian dan modulo Sep 21, 2023 pm 12:41 PM

Dalam masalah ini, kita hanya perlu membahagi dua integer tanpa menggunakan operator darab, bahagi dan modulo. Walaupun kita boleh menggunakan operasi tambah, darab atau bit. Pernyataan masalah menyatakan bahawa kita akan mendapat dua integer x dan y. Tanpa menggunakan pendaraban, pembahagian, atau operator modulo, kita perlu menentukan hasil bagi x dibahagikan dengan y. Contoh Input: x=15, y=5 Output: 3 Input: x=10, y=4 Output: 2 Input: x=-20, y=3 Output: -6 Kaedah Kaedah 1 (gunakan matematik mudah) di sini Dalam ini kaedah, kami akan menggunakan algoritma matematik yang mudah. Berikut ialah penjelasan langkah demi langkah tentang langkah yang akan kami ikuti - kami akan terus menolak pembahagi (iaitu y) daripada dividen (iaitu x) sehingga x lebih besar daripada atau sama dengan y. apabila y lebih besar daripada x

Kemahiran operasi pangkalan data Oracle: penerangan terperinci tentang operasi tolak Kemahiran operasi pangkalan data Oracle: penerangan terperinci tentang operasi tolak Mar 02, 2024 pm 06:15 PM

Sebagai sistem pengurusan pangkalan data hubungan yang berkuasa, pangkalan data Oracle menyediakan banyak operasi pengkomputeran untuk memenuhi keperluan pengguna. Dalam operasi pangkalan data harian, operasi penolakan adalah operasi biasa dan penting. Ia boleh membantu kami merealisasikan operasi penolakan data untuk mendapatkan hasil yang kami perlukan. Artikel ini akan membincangkan secara terperinci teknik yang berkaitan dengan operasi penolakan dalam pangkalan data Oracle, dan memberikan contoh kod khusus untuk membantu pembaca memahami dan menggunakan fungsi ini dengan lebih baik. 1. Konsep asas operasi tolak dalam data Oracle

Program C untuk membandingkan dua matriks untuk kesamaan Program C untuk membandingkan dua matriks untuk kesamaan Aug 31, 2023 pm 01:13 PM

Pengguna mesti memasukkan susunan kedua-dua matriks serta unsur-unsur kedua-dua matriks. Kemudian, bandingkan kedua-dua matriks. Dua matriks adalah sama jika kedua-dua elemen dan saiz matriks adalah sama. Jika matriks adalah sama dalam saiz tetapi tidak sama dalam unsur, maka matriks ditunjukkan sebagai sebanding tetapi tidak sama. Jika saiz dan elemen tidak sepadan, matriks paparan tidak boleh dibandingkan. Program berikut ialah atur cara C, digunakan untuk membandingkan sama ada dua matriks adalah sama-#include<stdio.h>#include<conio.h>main(){ intA[10][10],B[10][10] dalam

See all articles