多核多线程
uuussseeennn
这个作者很懒,什么都没留下…
展开
-
对一次多核程序设计比赛的总结
比赛是公司搞的,要求在20天时间内完成一程序,求三维空间内所有射线同所有三角平面的交点。射线和三角平面都通过文件方式输入,结果以文件输出,程序最后测试的平台有8核,8G的内存。算法,语言,线程库都不做限制,任意发挥,最后以结果正确,速度最快者获胜。我大概搞了七八天(由于放了长假还要上班,实际没有20天,不过这个大家都一样,公平),从对图形学零知识,学习向量、点乘、叉乘等等这些基础知识开始,到运用空原创 2010-01-21 09:55:00 · 1947 阅读 · 1 评论 -
Linux下的主动对象类的实现
#pragma once#include class ThreadWrapper{public: virtual ~ThreadWrapper(); static void EnterFunc(void *p); int Open(); int Close(); bool TestCancel(); void Wait(); virtual void Sv原创 2010-01-25 19:37:00 · 663 阅读 · 0 评论 -
[zz]多线程中的 WaitForSingleObject 与 EnterCriticalSection 性能比较
简介多线程软件应用对于提升英特尔内核架构的性能至关重要。锁定代码通常是多线程应用中运行最频繁的代 码。确定要使用的锁定方法与确定应用中并行处理一样重要。此白皮书的主要目的是向开发人员简要介绍 Windows 中进行锁定的不同方法以及与这些锁定有关的相应性能开销。Window 的某些锁定 API 可能会跳转至操作系统内核。此白皮书将详细说明跳转至内核的 API 以及相应的加入条件。使用两种不转载 2010-02-22 10:46:00 · 894 阅读 · 0 评论 -
一个容易被大家忽略的多线程性能优化方案:Cache行级别优化
#include #include using namespace std;struct Count{ long count1; char space[64]; // 此处增加64字节的“无用”空间,目的就是使得count1和count2位于不同的Cache行,从而避免Cache行同步引起的“乒乓效应”,可以尝试去掉这64字节的“无用”空间,将会得到令人诧异的运行结果,要探明深层原创 2010-03-05 15:33:00 · 1806 阅读 · 0 评论 -
跨平台并行库的初步设计
上篇日志提到我想用 ACE 和 Loki 库设计一个类似 OpenMP 的并行库,前两天仔细想了想,勾勒出了大体的框架,以供讨论;)看下面代码之前,首先要熟悉 Loki 库里面对 Functor 模板类的使用(《 C++ 设计新思维》一书有详细描述,不过看此书要做好心理准备:)),否则看了也是一头雾水; ACE 的部分暂未描述出来,先将其隐藏在 ParallelTask 类当中,所以对...原创 2010-05-24 18:05:00 · 769 阅读 · 0 评论