Tag Archives: 编程技术

《多核编译技术研讨会》记二

今天的会议日程比昨天轻松。五个报告。 台湾资讯研究院的游本中老师,未来编译研究的潜在领域展望。 江南所,关于精细编译调优的 计算所,关于并行的 上交 关于llvm的 武大 关于MCU编译器开发的 其中,游老师的演讲最为重量级,也对我们这些晚生最有指导意义。大牛就是大牛,在美国混了这么久,现在又是台湾某个研究所的所长,编译领域的了解可谓渊博,虽然还谦虚的说自己的讲义只是匆匆的准备,但是演讲的过程却功底颇厚。

Posted in 算法和计算理论, 编译技术 | Tagged , , , , , , , , , , , , , , , , | 4 Comments

《多核编译技术研讨会》记一

今天参加了国内几个做编译器的单位做的研讨会,有计算所,中国科大,intel,北京大学,清华大学,武汉大学,复旦大学,北京科技大学,北京理工大学,浙江大学,国防科技大学等,据说基本云集了国内几乎所有做编译研究的机构(公司除外)。 一天,10几个报告下来,基本发现国内做编译的无非做几个领域,最多的在并行优化,做有GPU的混合结构下的优化,国防科大的天河,北大的实验集群,基本都在做GPU和CPU混合的优化,看来它们最头疼的问题是之间的通信。还有其他几家做多核的基本也一样,如浙江大学的多核嵌入式,清华的程序切片技术提取并行通信模型。

Posted in 算法和计算理论, 编译技术 | Tagged , , , , , , , , , , , , , | 6 Comments

今日记录-091117

1,程序的run-time environment中 stack和heap 一般是相向增长,那么os/编译器是如何确定程序的运行时内存大小的呢? 2,static修饰的变量是静态变量,全局的静态变量将保存在Runtime Environment的静态变量区域中,局部的静态变量如何保存?保存在活动记录的栈里,像其他局部变量一样?

Posted in 编译技术 | Tagged , , , , | Leave a comment

并行计算前景-研究动机

加州大学伯克利分校有关并行计算前景的论文,集合了当时计算机体系结构,计算机软件系统,大规模集成电路设计和各个计算科学应用领域的知名专家,很权威的观点。 Continue reading

Posted in 算法和计算理论, 编译技术 | Tagged , , , , , , , | Leave a comment

并行计算前景-摘要

加州大学伯克利分校有关并行计算前景的论文,集合了当时计算机体系结构,计算机软件系统,大规模集成电路设计和各个计算科学应用领域的知名专家,很权威的观点。 Continue reading

Posted in 算法和计算理论, 编译技术 | Tagged , , , , , , , , , , , | 1 Comment

并行计算前景-译者注

加州大学伯克利分校有关并行计算前景的论文,集合了当时计算机体系结构,计算机软件系统,大规模集成电路设计和各个计算科学应用领域的知名专家,很权威的观点。 Continue reading

Posted in 算法和计算理论, 编译技术 | Tagged , , , , | 1 Comment

zz Linux下的段错误的原因及调试

简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址. 一 般来说, 段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表, 在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。一旦一个程序发生了越界 访问,cpu就会产生相应的异常保护,于是segmentation fault就出现了. 在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的 1)访问系统数据区,尤其是往 系统保护的内存地址写数据    最常见就是给一个指针以0地址 2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域 解决方法 我 们在用C/C++语言写程序的时侯,内存管理的绝大部分工作都是需要我们来做的。实际上,内存管理是一个比较繁琐的工作,无论你多高明,经验多丰富,难免 会在此处犯些小错误,而通常这些错误又是那么的浅显而易于消除。但是手工“除虫”(debug),往往是效率低下且让人厌烦的,本文将就"段错误"这个内 存访问越界的错误谈谈如何快速定位这些"段错误"的语句。 下面将就以下的一个存在段错误的程序介绍几种调试方法:      1 dummy_function (void)      2 {      3          unsigned char *ptr = 0×00;      4          *ptr = 0×00; … Continue reading

Posted in Linux系统 | Tagged , , , , , , , , , , , , | Leave a comment

zz Linux内核 编程风格

[文档] Linux内核 编程风格 发信站: BBS 水木清华站 Linux 内核编程风格                       原文出自Linux 源码/usr/src/linux/documents/ 本文在http://gem.ncic.ac.cn/~xhg/documents/CodingStyle.html 谢华刚(xhg@gem.ncic.ac.cn)翻译 ,欢迎任何问题和建议. 这篇短小的文章是对Linux内核编程风格的建议. 编程风格非常的个性化,而且,我并不 想将我的观点强加给任何人,但是为了变于维护,我不得不提出这个观点.详情如下: 在最开始,我应该写出GNU 编程风格的标准而不用理会它. 不要理会他们,它只是一个 符号表情而已. 好,让我们开始吧!             第一章: 缩进格式 Tab 是 8 个字符,于是缩进也是8个字符.有很多怪异的风格,他们将缩进格式定义为4 个字符(设置为2个字符!)的深度,这就象试图将PI定义为3一样让人难以接受. 理由是: 缩进的大小是为了清楚的定义一个块的开始和结束.特别是当你已经在计算机 前面呆了20多个小时了以后,你会发现一个大的缩进格式使得你对程序的理解更容易. 现在,有一些人说,使用8个字符的缩进使得代码离右边很近,在80个字符宽度的终端屏 幕上看程序很难受.回答是,但你的程序有3个以上的缩进的时候,你就应该修改你的程 序. 总之,8个字符的缩进使得程序易读,还有一个附加的好处,就是它能在你将程序变得嵌 套层数太多的时候给你警告.这个时候,你应该修改你的程序.             第二章:大符号的位置 … Continue reading

Posted in Linux系统 | Tagged , , , , | Leave a comment

程序员的德行 zz

发信人: voidluner (虚度年华), 信区: CPlusPlus 标 题: 程序员的德行 发信站: BBS 水木清华站 (Tue Jun 17 13:54:27 2003), 转信 //不知道这个算不算违规:) //觉得可以cc 作者:赵月旺     本文选自:登龙门人力资源网络 2003年06月12日 程序员一定要除了基本的道行修炼外。更重要的是德行修炼。德行=合作能力或沟 通能力。对于规模大,生命周期长(特别是衍生生命周期长)的软件项目而言,德行更 重要。 德行的标准 软件开发离不开企业,企业的文化决定着程序员的行为规范,比较理想的企业文化 是: 沟通方式开放、自由、平等,个人长期发展和企业发展的有限度统一。这样的企业 文化,必然会造就具有长远眼光和冒险精神的将帅之才。 这方面的楷模是微软公司,该公司全球员工平均年龄只有28岁,无论在全球的哪家 公司,微软评判人才的标准都是相同的。挑选员工的第一标准是应聘者是否具有良好的 品德。微软认为,良好的品质是职业道德的基础。其次,看应聘者解决问题的能力如何 ,在面对困难时是退缩,还是勇往直前,因为实际工作中常有新问题需要解决。第三, 要测试应聘者有没有快速学习的能力,日新月异的技术发展要求有快速学习能力。另外 ,团队精神、责任心、工作热情、创新精神和独立工作能力都是必须的。 好的企业文化熏陶出来的程序员,必然是关注个人长远发展的职业精英,这样的程 序员必然会较早地设定自己的职业发展管道。比如: 管理序列:程序员->项目管理人员->中级管理人员->高级管理人员; 技术序列:程序员->高级程序员->需求分析师\\架构工程师\\质量管理; … Continue reading

Posted in Linux系统 | Tagged , , , | Leave a comment