首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Windows Azure中的并行编程

Windows Azure中的并行编程
EN

Stack Overflow用户
提问于 2012-06-03 05:57:52
回答 1查看 931关注 0票数 0

我制作了wcf服务,我在azure中的web角色中托管了它。角色的实例非常大(它只是一个实例),它有8个核心。我在服务中有两个方法。方法是计算矩阵乘法,一种是顺序编程,另一种是并行(使用Parallel.For),结果是串行编程比并行快。我做错了什么吗?我一直在监视处理器的工作,当我开始并行计算时,所有的核心都被使用了,但结果并没有更好……下面是并行编程矩阵乘法的代码

代码语言:javascript
运行
复制
ParallelOptions p = new ParallelOptions();
            p.MaxDegreeOfParallelism=8; 
 Parallel.For(0, n,p, i =>
                {
                    for (int j = 0; j < n; j++)
                    {

                        suma = 0;


                        for (int k = 0; k < n; k++)
                        {

                            suma = (matricaA[i, k] * matricaB[k, j]);

                        }
                        proizvod[i, j] = suma;

                    }
                }
EN

回答 1

Stack Overflow用户

发布于 2012-06-04 10:42:25

我不知道这个问题的确切原因。但这里是我的建议:使用远程桌面登录到云机器。创建一个并行执行矩阵计算的控制台应用程序。然后在云机上运行控制台应用程序。使用资源监视器检查CPU使用情况。如果CPU使用率经常接近100%,那么您可以确信代码逻辑是正确的。

由于您使用的是WCF,请注意WCF默认情况下可以同时使用多个线程处理多个请求。因此,您的服务器有可能同时计算多个矩阵,而不是使用多个线程计算单个矩阵。通常,计算繁重的工作是在没有WCF的工作人员角色上完成的,在那里它们是逐个执行的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10866249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档