2016全国并行应用挑战赛
大赛背景介绍全国并行应用挑战赛(简称PAC) 由中国计算机学会高性能计算专业委员会指导,教育部计算机类专业教学指导委员会联合英特尔(中国)有限公司主办,北京并行科技股份有限公司承办,国家超算广州中心协办。PAC2016采用英特尔®新一代至强融核™处理器Knights...
View ArticlePenn Station:一种基于标注的、随特征数量伸缩的发布订阅服务
Edison WangTwitter/Vine资深安卓工程师构建并启动一个应用,既有趣又简单,但接下去就要维护;您不断地增添特性、事件和业务逻辑。 您的团队里增添了新成员,现在要跟踪发生了什么就不太容易了。您需要一种好方法来有条不紊地整理代码。 测试是起步的好方法。 您不断向有限状态机中增添状态,但最终发现无法再跟踪,于是您增添 Otto、EventBus、Dagger、Rx 和其他框架,...
View Article投资于移动应用开发的主要原因
Daniel KaufmanBrooklyn Labs共同创始人通过面向移动操作系统(安卓、Apple 等)开发移动应用,您能够在众多现有和潜在客户中提高品牌知名度和可靠性。 若干客户现在期待业务或品牌拥有其自己的可靠移动应用。 这说明,这不单单是合理地胜过其他行业的需要。 拥有专门的移动应用将增强品牌的可靠性。请记住,移动应用的意义现在在于社会;为您的业务制作一个移动应用是明智的决定。...
View ArticleThreading and Intel® Integrated Performance Primitives
Threading and Intel® Integrated Performance Primitives (PDF 230KB)AbstractThere is no universal threading solution that works for all applications. Likewise, there are multiple ways for applications...
View Article没有任何秘密的 API: Vulkan* 简介第 4 部分
下载 [PDF 890KB]Github 示例代码链接请前往: 没有任何秘密的 API: Vulkan* 简介第 3 部分: 第一个三角形目录教程 4: 顶点属性 –...
View Article没有任何秘密的 API:Vulkan* 简介第 0 部分:前言
下载 [PDF 456K]Github 示例代码链接关于作者我成为软件开发人员已有超过 9 年的时间。 我最感兴趣的领域是图形编程,大部分工作主要涉及 3D 图形。 我在 OpenGL* 和着色语言(主要是 GLSL 和 Cg)方面拥有丰富的经验。三年来我还一直致力于开发 Unity* 软件。 我也曾有机会投身于涉及头盔式显示器(比如 Oculus Rift*) 或类似 CAVE 系统的 VR...
View ArticleGPU Detect
下载代码样本Microsoft Windows* SDK May 2010 或较新版本(兼容 2010 年 6 月 DirectX SDK)GPU Detect英特尔公司特性/描述日期: 2016 年 5 月 5 日GPU Detect 是一种简短的示例,演示了检测系统中主要显卡硬件(包括第六代智能英特尔® 酷睿™ 处理器产品家族)的方式。...
View Article什么是英特尔® Edison 模块?
英特尔® Edison 模块是一种 SD 卡大小的微型计算芯片,专为构建物联网 (IoT) 和可穿戴计算产品而设计。 Edison 模块内含一个高速的双核处理单元、集成 Wi-Fi*、蓝牙* 低能耗、存储和内存、以及用于同用户系统进行交互的广泛输入/输出 (I/O) 选件。 Edison 模块占用空间小、功耗低,是需要强大处理动力但无法连接电源的项目的理想之选。Edison...
View Article了解物联网生态系统
物联网生态系统剖析可穿戴设备和家庭自动化设备当今主宰着物联网市场,但是物联网的整个生态系统将不断向前演进。 图 1 展示了物联网生态系统简图:左侧是终端设备。 它们是物联网的终端,提供了通过传感器和致动器感知和控制环境的途径。网关收集来自终端设备的数据,然后传输给云(同时通过云提供控制)。 在一些情况下,网关可以处理数据,以增加生态系统的价值。云提供了存储数据和执行分析的途径。...
View Article管理锁争用: 大、小关键代码段
管理锁争用 — 大、小关键代码段 (PDF 147KB)摘要在多线程应用中,程序员会使用锁来同步线程进入可访问共享资源的代码区域的行为。 受这些锁保护的代码区域被称为关键代码段 (Critical Section)。 如果关键代码段中已存在一个线程,那么其它任何线程都不可进入该代码段。 由此可见,关键代码段采用序列化执行方式。...
View Article使用线程化 API 提供的同步例程,而非手工编写同步例程
使用线程化 API 提供的同步例程,而非手工编写同步例程 (PDF 202KB)摘要应用编程人员有时候手工编写同步例程而非使用线程 API 提供的结构,以便减少同步开销,或提供不同于现有结构所提供的功能。 遗憾的是,使用手工编写的同步例程可能对性能、性能调谐或多线程应用的调试造成负面影响。本文是“英特尔多线程应用开发指南”系列的一部分,该系列介绍了针对英特尔®...
View Article选择合适的同步基元以最大限度地减少开销
选择合适的同步基元以最大限度地减少开销 (PDF 237KB)摘要如果线程在一个同步点等待,那么它们无法做有用功。 然而,多线程程序中通常需要一定程度的同步化,明确的同步有时甚至优于数据复制或复杂的非阻塞调度算法,然而其本身也存在一些问题。...
View Article如有可能可使用非阻塞锁
如有可能可使用非阻塞锁 (PDF 191KB)摘要通过执行由辅助线程实施提供的同步基元,线程可在共享资源上实现同步。 这些基元例如互斥体 (mutex) 和旗语 (semaphore) 等只允许单条线程持有锁,其它线程则依据自身的超时机制自旋或阻塞。 阻塞线程将导致成本昂贵的环境切换操作,而旋转等待则会浪费 CPU 执行资源(除非等待时间非常短)。...
View Article整理您的数据和代码: 数据和布局 - 第 2 部分
这两篇关于性能和内存的文章介绍了一些基本概念,用于指导开发人员更好地改善软件性能。为实现此目标,文章内容重点阐述了内存和数据布局方面的注意事项。第 1 部分介绍了寄存器使用以及覆盖或阻塞算法,以改善数据重用情况。文章从考虑数据布局以提供通用并行处理能力(与线程共享内存编程)开始,然后还考虑了基于 MPI 的分布式计算。本文扩展了在实现并行处理能力时需考虑的概念,包括矢量化(单指令多数据...
View Article基于 Windows® 10 的英特尔® 内存保护扩展:教程
简介自第六代智能英特尔® 酷睿™ 处理器起,英特尔公司开始推出英特尔® 内存保护扩展(英特尔® MPX),它是一种针对指令集架构的全新扩展,旨在通过帮助抵御缓冲区溢出攻击,增强软件安全性。 在本文中,我们将介绍缓冲区溢出,并提供详细的步骤指导应用开发人员如何保护 Windows® 10 上的应用免受缓冲区溢出攻击。 英特尔 MPX 适用于传统桌面应用和 Universal Windows...
View Article基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练
在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升。 Pradeep Dubey 在其博文中概述了英特尔®架构机器学习愿景。 英特尔正在实现 Pradeep Dubey 博文中勾勒的机器学习愿景,并正在着手开发软件解决方案以加速执行机器学习工作负载。这些解决方案将包含在未来版本的英特尔®数学核心函数库(英特尔®...
View Article预测和测量并行性能
预测和测量并行性能 (PDF 310KB)摘要构建软件的并行版本可使应用在更短的时间内运行指定的数据集,在固定时间内运行多个数据集,或运行非线程软件禁止运行的大型数据集。 并行化的成功通常通过测量并行版本的加速(相对于串行版本)来进行量化。 除了上述比较之外,将并行版本加速与可能加速的上限进行比较也十分有用。...
View Article粒度与并行性能
粒度与并行性能 (PDF 270KB)摘要实现出色并行性能的关键是选择适合应用的粒度。 粒度是指并行任务的实际工作量。 如果粒度太细,则并行性能会因通信开销增加而受到影响。 如果粒度太粗,则并行性能会因负载不均衡而受到影响。...
View Article负载平衡与并行性能
负载平衡与并行性能 (PDF 199KB)摘要实现线程之间应用工作负载平衡是确保出色性能的关键。 实现负载平衡主要是为了最大限度缩短线程的闲置时间。 在尽量减少工作任务分配开销的情况下,在所有线程之间平均分配工作负载,可以减少浪费在不能进行运算的闲置线程上的时间,进而可显著提高性能。...
View Article通过避免或消除人工相关性实现并行性
通过避免或消除人工相关性实现并行性 (PDF 186KB)摘要实现线程之间应用工作负载平衡是确保出色性能的关键。 实现负载平衡主要是为了最大限度缩短线程的闲置时间。 在尽量减少工作任务分配开销的情况下,在所有线程之间平均分配工作负载,可以减少浪费在不能进行运算的闲置线程上的时间,进而可显著提高性能。...
View Article