上个月有幸参加了 Sun 开源技术高级研讨班(青岛)的活动,两天下来收获不小,稍微整理了一点资料,在这里同大家分享下。
第一天讲 Dtrace 和 OpenMP。
Sun 果然是一家技术超前的公司,通过 Solaris 上的 Dtrace,我们可以非常精确的跟踪用户进程,将系统当前状态掌握的了如指掌。
Solaris 中有几万个探针,有点类似于debug断点的概念,它们分布于不同位置;做开发时,我们可借助其找出性能瓶颈,进行优化。
下午的 OpenMP 让我更深入了解了多线程编程。
分享一个动手实验吧:
将下面的程序循环分解并打印出目前正在执行的线程 10分钟
环境要求:
1.Solaris10 或者 Opensolaris 环境
2.已经安装好SUN Studio express 11/08 以上版本
3.如果使用IPS系统需要安装的包: netbeans,netbeans-cpp,netbeans-full,netbeans-ide,netbeans-desktop,sunwlibc,sunwcpp,sunstudioexpress
#include <stdio.h>
int main()
{
int i;
for(i=0;i<10;i++)
printf("hello,world\n");
return 0;
}
步骤:
1)首先我们确定要把这个循环分解到几个线程,县城数目过多而单个线程的任务过少反而会降低程序执行的效率,在这里我们把这个循环分解成两个。(上限不要超过CPU的总CORE数)
2)加入指示性语句 #pragma omp parallel for 语句,并指示线程数 num_threads(2)
#include <stdio.h>
int main()
{
int i;
#pragma omp parallel for num_threads(2)
for(i=0;i<10;i++)
printf("hello,world\n");
return 0;
}
3)使用OpenMP的API omp_get_thread_num() 打印目前正在运行的线程号,记住包含omp.h头文件
#include <stdio.h>
#include <omp.h>
int main()
{
int i;
#pragma omp parallel for num_threads(2)
for(i=0;i<10;i++){
printf("hello,world,ID:%d\n",omp_get_thread_num());
sleep(1); //增加观察性
}
return 0;
}
4)编译#cc -xopenmp -fast lab2o.d
5)运行,观察结果
一点点敲完真累,改天把别的实验也扫描一下贴上来。
分享到:
相关推荐
【标题】"Sun 开源技术高级研讨班(青岛)收获分享(二)" 涉及的知识点主要集中在开源技术和Sun公司的技术应用上。Sun Microsystems是一家在计算机硬件和软件领域具有深远影响力的公司,尤其以其Java编程语言和开源项目...
此次我们关注的是Sun公司提供的一个免费开源项目,这对于开发者和学习者来说是一份宝贵的资源。 首先,让我们深入了解"JAVA"。Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(后被Oracle公司收购)...
- **Sun公司的开源虚拟化方案**提供了一系列丰富的工具和服务,包括OpenSolaris管理程序、Sun VirtualBox以及Solaris容器等,这些都为用户提供了一个开放且灵活的平台。 ##### 获取更多创新 - **开源社区**的强大之...
标题和描述均提到了“开源技术讲座”,以及Sun公司济南地区的开源大使田贯升,这表明讲座的主题聚焦于开源技术和Sun公司的相关产品,尤其是JavaEE5及其应用服务器GlassFish的介绍。以下是对讲座中提到的关键知识点的...
### Sun白皮书:企业中的开源技术 #### 执行摘要 在当今的IT世界中,开源软件已经成为一种无处不在的现象。它不仅被广泛应用于《财富》500强公司,还深入到了大学、发展中国家、政府机构乃至学生群体之中。尽管...
sun公司开源的jar包,里面封装了log4的日志以及关于自动生成hashcode代码以及重写equal方法的jar
4. **VirtualBox虚拟化技术**:Sun VirtualBox是其推出的一款开源虚拟化软件,能够在各种操作系统上运行,为云计算环境提供虚拟机管理。在云计算环境中,虚拟化是基础,VirtualBox的易用性和强大功能使其在业界受到...
2004年3月,Sun公司宣布,它与印度哈里亚纳邦(Haryana)政府签署了一项理解备忘录,其基于开源技术的办公套件StarOffice:trade_mark: 7将被用于该邦政府各个部门。这一协议备忘录的签署在开源技术和开放标准在印度的...
本文将探讨Java开源技术、相关开发工具、Linux操作系统以及一些关键的公司和组织。 首先,Java开发离不开JDK(Java Development Kit),它是编写Java程序的基础。SUN Microsystems最初发布了Java,并在此后,JDK的...
Sun StorEdge技术是Sun Microsystems(已被Oracle收购)推出的一套高级存储解决方案,旨在提供高性能、高可用性和成本效益的存储服务。Etagon公司,作为一家技术供应商,选择了Sun StorEdge 3510 FC阵列来构建其存储...
总的来说,"Sun提供的有关开源方面的讲座资料"将是一份丰富的资源,帮助我们理解开源的本质,学习如何参与到开源项目中,以及如何在个人和组织层面上利用开源的力量。通过深入研究这些材料,我们可以更好地适应和...
"Sunshine v1.4.1 - 超强的阳光系统最新版(官方标准版)" 是一个操作系统软件的更新版本,它很可能是一款基于Linux内核的开源操作系统,旨在提供高性能、安全性和用户友好的体验。这个“阳光系统”可能以它的易用性、...
Sunflower是一个园艺应用程序,它展示了如何使用现代Android架构组件来构建一个功能丰富的应用。然而,Google最初提供的源代码是用Kotlin编写的。对于那些更熟悉Java或者想学习Java在现代Android开发中的应用的...
- Sun:Solaris Containers是Sun的虚拟化技术,允许在一个物理服务器上运行多个隔离的系统环境,提高资源利用率。 - IBM:IBM提供了PowerVM,一种在Power服务器上运行多个虚拟机的虚拟化平台,同时也有KVM和VMware...
很抱歉,根据您给出的信息,"sun sun 精华"似乎并不是一个明确的IT相关主题,而且描述中也没有提供具体的技术细节或知识点。标签"sun s un 精华"同样没有提供足够的线索来生成相关的IT内容。至于压缩包子文件的文件...
【描述】:该文档是Sun公司的一份WhitePaper,主要探讨了开源技术和云计算在大规模、按需及创新型IT环境中的应用和重要性。 【标签】:无 【部分内容】:这份白皮书强调了云计算的经济性和灵活性优势,以及开源...
phoneME是Sun Microsystems(现已被Oracle收购)官方推出的一个开源项目,旨在提供一个可扩展、高性能且跨平台的Java ME(J2ME)执行环境。它主要面向移动设备,尤其是那些对内存和处理器资源有限的设备。phoneME的...
Sun 不断改进其开源产品以适应新兴趋势和技术,如云服务、移动设备管理和物联网(IoT)设备的接入。通过持续的研发投入和与社区的合作,Sun 力求使其身份管理解决方案始终保持领先地位。 #### 如何开始使用 Sun 的...