首页 > 其他分享 > 矩阵乘法优化

矩阵乘法优化

时间:2023-01-27 20:56:14浏览次数:41  
标签:fopen int double 矩阵 data include 优化 500 乘法

#include<stdio.h>
#include<omp.h>
#include<stdlib.h>
#include<math.h>

const int N = 500;

double a[500][500];
double b[500][500];
double c_0[500][500];
double c[500][500];

int main(){

//------------------------------------------// 
    FILE* f1;
    FILE* f2;
    FILE* out;
        
    f1 = fopen("data_a.txt", "r");
    f2 = fopen("data_b.txt", "r");
    out = fopen("data_c.txt", "w");
    
    for(int i=1;i<N;i++){
    
        for(int j=1;j<N;j++){
            fscanf(f1,"%lf",&a[i][j]);
            fscanf(f2,"%lf",&b[i][j]);
        }}
//--------------------------------------------------//    

    double t0,t1;
    double T0,T1;
    
    
//----------------------------------// 
    t0 = omp_get_wtime();
    //mul
    for(int i=1;i<N;i++)
        for(int j=1;j<N;j++)
            for(int k=1;k<N;k++)
                c_0[i][j] += a[i][k]*b[k][j];
    
    t1 = omp_get_wtime();
    
    T0 = (t1-t0)*1000;
    printf("优化前矩阵乘法耗时: %f ms\n", T0);
//---------------------------------------------------//    



    t0 = omp_get_wtime();
    
//---------------------// 
//--------------- c = a * b -------------------------//
    #pragma omp parallel for
    for(int i=1;i<N;i++)
        for(int j=1;j<N;j++)
            for(int k=1;k<N;k++)
                c[i][j] += a[i][k]*b[k][j];
    
//--------------------------------------------------//    

    t1 = omp_get_wtime();
    
    T1 = (t1-t0)*1000;
    printf("优化后矩阵乘法运行耗时: %f ms\n", T1);    

    printf("加速比为%f\n",T0/T1);

//-------------------------------------------// 
    for(int i=1;i<N;i++)
        for(int j=1;j<N;j++)
            fprintf(out,"%lf\n",c[i][j]);
//---------------------------------------------------//            
            
    fclose(f1);
    fclose(f2);
    fclose(out);            
}

 

标签:fopen,int,double,矩阵,data,include,优化,500,乘法
From: https://www.cnblogs.com/sunyang13763857269/p/17069305.html

相关文章

  • m基于PSO粒子群优化的立体仓库货位优化matlab仿真
    1.算法描述       PSO算法是一种随机的、并行的优化算法。它的优点是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。然而,PSO算法......
  • m基于PSO粒子群优化的地震灾后救援物资仓库最优存放方案matlab仿真
    1.算法描述    PSO算法是一种随机的、并行的优化算法。它的优点是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。然而,PSO算法的缺点......
  • SQL优化
    SQL优化一、插入数据insert插入如果我们需要一次性往数据库表中插入多条记录,可以从以下三个方面进行优化。insertintotb_testvalues(1,'tom');insertintotb_test......
  • SQLServer 2014 内存优化表
    内存优化表是SQLServer2014的新功能,它是可以将表放在内存中,这会明显提升DML性能。关于内存优化表,更多可参考两位大侠的文章:​​SQLServer2014新特性探秘(1)-内存数据库......
  • Serverless应用优化与注意事项
    通过冷启动优化、对无状态性的认识、Serverless架构下的资源评估、开发者工具的加持等方面的介绍对Serverless架构下的应用优化与注意事项进行总结。函数基础与资源编排1......
  • Serverless应用优化
    Serverless应用优化4.4.1资源评估依旧重要Serverless架构虽然是按量付费的,但是并不代表它就一定比传统的服务器租用费用低。如果对自己的项目评估不准确,对一些指标设置......
  • KlipperPad 安装精简优化版 Windows10 教程(完美驱动)
    前言本文针对思兼的KlipperPad,介绍如何安装Windows10精简优化版操作系统。一、使用品铂原版系统操作系统链接:http://pipo.cn/index.php?m=About&a=gujian_show&id=......
  • 性能优化有哪些性能指标,如何量化
    加载速度、第一个请求响应时间、页面加载时间、交互动作的反馈时间、帧率FPS、异步请求完成时间Lighthouse、Throttling、Performance、Network、WebPageTest标准回答......
  • 前端性能优化
    图片压缩和文件压缩、雪碧图/精灵图、节流防抖、HTTP缓存、本地缓存、Vue的keep-alive缓存、ssr服务器端渲染、懒加载、对dom查询进行缓存、将dom操作合并标准回答前端性......
  • m基于PSO粒子群优化算法的最优样本组合策略分析matlab仿真
     1.算法描述        PSO算法是一种随机的、并行的优化算法。它的优点是:不要求被优化函数具有可微、可导、连续等性质,收敛速度较快,算法简单,容易编程实现。然而,P......