高性能并行计算 学习C 怎么进阶?
学习C 怎么进阶?
C 是目前编程语言中学习成本比较高的语言之一,C 在图形、音视频处理,通信,游戏,后端服务方面应用还比较广泛,我认为需要C 学习进阶有如下几个步骤:
1、看一下C 方面的编程书籍
1)《C Primer》,《C 编程思想》这初级读本是所有学习C 的人必须啃的书,C 的知识点比较全。
2)《Effective C 》、《MoreEffective C 》、《C 沉思录》、《Effective STL》这写书比较经典,进阶必备。
3) 《深度探索C 对象模型》、《现代C 设计》、《泛型编程与STL》这些书可以深入理解C
技术书可以循序渐进看,边学变练,做项目过程中越到问题可以翻翻这些书,有可能有解决问题的思路,项目不忙时,闲下来时可以再看看书。
2、参与C 的项目
边做项目边学习是成长最快的方法,因此要想进阶就必须参与C 的项目,设计开发C 的项目。
3、学习和参与C 开源项目
看看优秀的开源项目可以开阔视野,提高自己
推荐一些优秀开源C 项目
1)STL,Boost都是开源的,可以学习一下
2)Libev libev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施
3)google的grpc, 基于protobuf的开源rpc, 支持多种编程语言: https://github.com/grpc/grpc
4)google的protobuf, 非常经典, 强烈建议做c 的同学阅读源代码:
https://github.com/google/protobuf
github有大量C 开源,可以看一下
4、经常总结
经常总结,让经验沉淀下来,有条件可以写博客,也经常看看别人的技术博客
如何把我的几台电脑联起来做并行计算?
首先,你要运行的软件,必须本身支持并行计算机处理,或者 服务器群
其次,不同操作系统,需要有不同的工具;
1、windows系统下,罕有并行
计算软件
,一些CAD、3D软件有这个功能,自带的,这个时候只需要超快的局域网即可,也就是说网线要好、交换机要好就够了;2、Linxu下很多这种软件,网上一找一大堆,开源免费的都有,问题是你的软件要能在Linux下运行才行,否则没意义;
3、Nvdia公司有K20、K40的这种硬件卡,插在多台计算机上,用
数据电缆
互联,就能组成并行处理计算机阵列,或者服务器群
集阵列,问题也是不支持windows系统,这种是效果最好的解决方案。买卡时,会送对应的软件的。不便宜。版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。