包含椰子团队计算机黑客的词条

本文目录一览:

中国著名黑客人物有哪些?

 【Rocky】:请允许我把这个人的名字放在第一位,并致以最沉痛的悼念,早期的绿色兵团核心成员,美国国防部的web site上曾留下过他为祖国的呐喊,绿色兵团早期的文章由他翻译。我依然记得四年前rocky第一次进入我的linux ,当时他的激动和喜悦,然而今天他却永远的离开了我们,走的这么突然。我会记得你,大家会记得你,直到永远、永远,我的朋友--Rocky。

【Dspman(HeHe) 】:绿色兵团核心成员,为人和气,讲义气,做事情大大咧咧。但是Unix基础相当过硬。

【Solo 】:绿色兵团核心成员,美丽的solo,精通数据库,做事比较重感情,曾第一个提出SQL查询语句的严重漏洞。

【LittleFish(小鱼儿) 】:绿色兵团核心成员,要是上天再给我一次机会的话,我还是愿意和他做朋友。因为我爱他。果断的性格,冷俊的言语是一个天生的黑客。当年我曾对他说,我们要做一个中国最大的网络安全组织,鱼儿回答我说:“不!,我们要做亚洲最大的。”这句话我永远记得,我会去努力的,即使一事无成。

【Blackeye 】:绿色兵团核心成员,是个具有商业头脑的人,曾为绿色兵团商业化做过很多的付出和努力,中国黑客走到商业化道路和这个名字分不开。

【笛亚哥 】:是一个很老很老的朋友,也许很多人已经遗忘了这个名字,但是我一直在寻找他,曾编写当时来说比较实用的文章(绿色兵团黑客教材)。

【冰人 】:一个人彻底的消失很难尤其是这样出名的一个人物,早期的中国黑客没有不知道这个名字的,但是他的确做到了,彻底的从网络这个世界消失了。

【jiangyf 】:几年前是绿色兵团聊天室的常客,大家一起学习一起进步,对技术他完全不保留。

【中国鹰派 】:绿色兵团早期成员,擅长加密破解曾参加过第一次的绿色兵团年会。为组织出谋化策是个铁杆成员现在中国鹰派发展迅速,成员分布中国各地,和他的努力分不开。

【Frankie 】:辰光站长,说到深圳辰光无人不晓,是中国出名的一个安全站点。

【Iamin 】:97年绿色兵团站点第一万个访客,当时他的站点和绿色兵团是两个主要的安全大站。其安全站点黑客之家也是当初最出名的站点。

【袁哥 】:我非常敬佩的一个程序员,非常实干,热于助人,技术相当过硬,而且看程序有耐心。不管发生什么,他都是我敬佩的一个程序员。

【Adam 】:chinaasp的安全版版主,相识很偶然,很好客和热心,就是喜欢开开小玩笑,借我的那本书不知道啥年头可以还我。

【Davidchen(backend) 】:翻译过很多技术文章,很多经典的安全文章出自他的手。

【Cloudsky 】:清华bbs斑竹之一,写过很多好文章。

【CK 】:一个广州的年轻小伙子,绿色兵团成员,非常好学。

【PP 】:一个老朋友,为中国网络安全做过很多贡献,喜欢在网络上打抱不平。

【ColdFace 】:绿色兵团分站网络力量站长,脾气比较大,但是为组织做过很多事情,纯ORG的强烈拥护者。

【小榕 】:从乱刀到流光,用过的人都知道这个名字,他是一个专门开发安全工具的程序员。

【Zer9 】:我非常喜欢的一个朋友,气量很大,代表作品,代理猎手高度分析等。

【天行 】:天行软件的作者,应该不用介绍了,要是你不知道就去用一下他的软件。

【LOG 】:绿色兵团早期成员,曾参加过第一次绿色兵团年会,话语不多,但是为人很诚恳,我一直感到欠疚,他从外地赶来开会我没有招呼好他。

【雨馨 】:千万别以为这是个女孩,不过他的cn105没有人不知道,以前是绿色兵团的常客,技术提高很快。

【LoGon(doorless) 】:一个非常谦虚和好学的人,值得交往的朋友。

【liwrml 】:绿色兵团分站,麒麟网络安全小组的站长,兵团铁杆支持者。

【Chener 】:需要什么软件,需要什么地址去问他,觉得他就象活的网络词典。

【大鹰 】:补天的得力干将,很有互助精神,你问他什么问题他总是尽量回答你。

【shotgun 】:一个真正热爱网络安全的技术人员,不为名利,不为金钱。

【WoWo 】:患难之中见真情,得人滴水之恩当涌泉相报。

【仙剑 】:仙剑乐园有一大批的中国安全爱好者,是中国最大的一个电话破解站点。

【Casper 】:是也很好的朋友,他有很cool的外型,谦虚和严谨,对技术从不保留,是个真正热爱安全的技术人员。

【椰子 】:写过不少好文章,看事情比较成熟。

【WhoamI 】:热心,乐于助人,只是有个坏习惯,千万别在他喝醉的时候去和他讨论技术。

【傻Billy 】:中国每个安全站点的角落都能看到他的灌水贴,绿色兵团常客

【weiyangsheng 】:绿色兵团铁杆支持者,比较低调。

【BadBoy 】:中国红客的领袖人物,知识面较广也是兵团的支持者。

【 柳永】:绿色兵团的拥护者,其实他比很多人都要强,可是他总是很谦虚,说自己懂的很少,而且不太说废话,只和别人探讨技术。

【小小龙女 】:绿色兵团的很多文章有他翻译,精通linux。

【阿飞(remix) 】:绿色兵团的成员,老说自己是垃圾,废话是挺多的,不过人不错,为兵团做了很事情。

【五月玫瑰 】:绿色兵团的成员,虽然没有说过一句话,没见过一次面,而且几乎不看到他发言,直到有一天他发来的信,把自己发现的微软输入法的新漏洞无私的告诉了我们,永远都会感谢他对兵团的支持。

【Ghost_happy 】Ghost_happy:他的桌面实在是叫人流口水,不信你去问他要一张截图看看(win2k + vm +FreeBsd)。

贞子和伽椰子谁比较厉害?

日本恐怖电影史上经典得不能再经典的两个系列《午夜凶铃》和《咒怨》的主角将强势对决!当贞子遇上了伽椰子,究竟谁会胜出?我们来对比下她们的能力。

贞子

贞子,全名山村贞子。

超能力拥有者,能催眠、用意念杀人、念写、预知未来。

拥有一头黑长直的遮面秀发,外形姣好,却是半阴阳人,同时拥有男性和女星的生殖器官,常年一身白。

《午夜凶铃》第二个系列显示,贞子在被父亲伊熊平八郎推入井底后没有死亡,在井底活了30年。累计了30年的怨念和愤怒,用杀人来宣泄。

电影中的贞子以幽灵的形态示人,其中堪称经典的一幕就是从电视机里爬出来并通过惊吓和超能力攻击人类心脏……

贞子本来只有一个,在途中分裂成了两个,一个像母亲,具有毁灭的超能力而且很邪恶(母亲并不邪恶),一个像亲生父亲(父亲没有超能力)是大贞子,没有超能力但有很强的治愈能力(让双腿瘫痪的老人站了起来)生性善良内向,母亲由于这件事精神分裂,后来又由于实验的事加重了病情(超能力试验后,由于记者不相信,都说是骗人的,突然,有人死亡,众人都认为是贞子的母亲所杀,都说他是妖怪,其实是躲到幕后的小贞子所杀)最后母亲在家人不注意的情况下跳进三原山自尽。

【补充:在第四部的时候(第四部是前传,说第一部录影带的来源),小贞子在博士家的“监狱”用思想传达到大贞子的剧团杀死了当年诋毁她母亲的记者(并让剧团的人误会是大贞子所杀)】小时候像父亲的贞子上学,小贞子呆在“监狱”里,后来,像父亲的贞子在东京的剧团工作。小贞子由于嫉妒就用意志跟随着大贞子,小贞子让剧团的人讨厌大贞子,一系列的事情发生后,在一次公演时发生了意外,有人在公演时死亡(那个当年诋毁贞子母亲的记者),剧团的演员都认为大贞子是怪物,准备杀死她,众人用钝器砸向她,大贞子昏死过去。可是没想到大贞子的自我治愈能力极强。

他们把大贞子送回故居,准备同时杀死小贞子。大贞子心里憔悴,和自己最爱的人逃来到了悬崖边,小贞子的意志趁机占据了大贞子的身体(二人合一变成一个二重人格的贞子),小贞子的肉体坠入了大海,并且杀死了剧团尾随而来的所有人,大贞子已经无法控制自己意志,在她还没有危害更多人之前,父亲给贞子注射了天花病毒,并且用镰刀划向她的头后,将她的身体抛入井底,并且盖上了盖。

当时天花病毒已经绝迹,由于二者(贞子、天花病毒)都有强烈的重生的欲望。在贞子超能力的超强发挥以及井底里密闭的环境之下她的体细胞与天花病毒融合,成为一种能量,附着在井壁上。后来在那里建起了休闲中心,井上正好是B4号木房,在一家人去游玩时,一个小朋友采用暗录的方式录下了由贞子怨念而形成的影象(遗传物质进入录像带),看过的人体内的体细胞发生突变,某个部位的体细胞突变,成为贞子的体细胞与天花病毒融合成的病毒,病毒会攻击心脏内的血管,产生肿瘤,并且喉咙处会有溃疡(天花症状)七天后肿瘤成熟就会心肌梗塞。(以上是较科学说法)。电影里说贞子30年前(死前)所演的录影带因为后半部分演时发生了意外,而且发生意外的部分没有被录到,是空白部分,贞子死后将她生前(小时候)记忆最深刻的事情拼补到空白部分上(午夜凶铃第二部)所以录影带说很奇怪。

她不断地将自己的遭遇念写到录像里,并将看到录像的人于事后的第7天杀害。一般从电视屏幕里爬出,有时从镜子里爬出。

看过录像的人一般会感染上病毒,在一周后诱发心肌梗塞。死时面目狰狞,好像在经历巨大的恐惧。

杀人之际自我繁殖。以女性遇害者为媒介受精,一个礼拜即可出生,再经历一个礼拜即可长大成人,并且保留有生前的记忆。

伽椰子

在《午夜凶铃》第一部中由伊野尾理枝扮演(这是个非常神秘的人!据说是个舞蹈演员,她拍贞子的时候,用的不是人类的脚步!连在日本都很少有她的资料和照片。她就是演从电视机里爬出来的贞子,看不见相貌),在第二部《贞子缠身》中依然由伊野尾理枝扮演,在第三部《凶铃再现》中由佐伯日菜子扮演,在第四部《贞相大白》中由仲间由纪惠扮演。这个角色在现实生活中是不存在的,但是许多人因为贞子而害怕。不过也有少数人非常喜欢她,如今,贞子正被做成许多可爱的卡通形象在网络上流传。

小说《午夜凶铃》系列又名《七夜怪谈》,由铃木光司于1989年创作。1997年改编的同名电影在日本公映,至2002年已改编为5部电影,在全球创造了恐怖悬疑的流行风。

《午夜凶铃》:四名少年在同一时间、不同地点离奇死亡,死者面部都呈现出惊恐的神色......是什么造成这起死亡事件?在好奇心的驱使下,记者浅川开始了调查。一盘神秘的录像带,一句死亡的诅咒,一段不为人知的历史......真相寸寸接近,死亡却步步紧逼。铃声过后,恐怖在城市里蔓延,看不见、抓不着的黑暗因子无孔不入!

《午夜凶铃2:复活之路》:病毒已经开始扩散,贞子借腹重生,生与死之间原来只有一线相隔。安藤为了自己的儿子出卖了人类,和魔鬼签下恶的契约,龙司也因贞子

《午夜凶铃》的剧照(13张)

而复活,而贞子复活之后又会怎样呢?人类将面临的是怎样的命运与结局呢?当恐怖和惊愕的表情还留在你的脸上,另一个阴影正悄然笼罩。

《午夜凶铃3:永生不死》:转移性癌病毒肆虐,人类即将遭受灭顶之灾。为拯救亲人、拯救人类,年轻的阿馨走上了一条追寻真相的不归之路。当他发现他只是高山龙司的克隆,当他发现一切原来掌握在人与计算机的共同缔造的"环界"中,当他发现只有牺牲自己才能拯救人类时,他会作出怎样的选择?

《午夜凶铃4:凶铃诞生》:重逢并没有给贞子和远山这对昔日的恋人带来任何甜蜜,一切的答案都埋藏在贞子的身世之中。虽然死亡步步近逼,但远山依然不改对贞子的眷恋......掀起全球最恐怖、最颤栗的贞子风暴终于平息,两个世界都回到了和平幸福的起点。然而这是否真是结局?计算机创造出来的"环界“是否会再创造出另一个"环界"?

伽椰子,全名川又伽椰子。

被丈夫杀害,含恨而死。尸体被装进垃圾袋放在家里的阁楼里。恶灵形态。

被杀害后凭怨念杀死了丈夫,并将自己的儿子俊雄带到了阁楼里那个另外的世界里。常以在地上爬行的姿态出现。

与儿子俊雄的恶灵盘踞在生前的房子里,入住的新居民均被杀死。

剧场版里的伽椰子拥有改变录像的能力,通过原濑京子复活。

根据以往贞子和伽椰子的能力来判断,总感觉伽椰子分分钟被贞子KO。

分析,看过咒怨2的都知道,伽椰子的的妈妈是鬼婆,专门帮被鬼上身的的人驱鬼,我记得是伽椰子的体质特殊,她妈妈把别人身上的鬼都挖到伽椰子身上了(估计都是普通的鬼),所以伽椰子死后应该是很多鬼的合体,但是它们出不来房子,后来被一把火烧了才跑到美国去,贞子30年的怨念,这念力一般鬼是没有的,纯厉鬼,伽椰子是升级上来的厉鬼,孰强孰弱,一眼便知。

小椰子团队怎么样

海椰皇,亦称小椰子,属于酒棕榈,地处马达加斯加500以下的热带森林。其棕榈树的果实,以籽小,味道浓香,汁丰润滑,功效显著而闻名,其产地主要为马达加斯加的安比亚。海椰皇,味甘,性温,有生津、利水等功能。

应答时间:2021-08-06,最新业务变化请以平安银行官网公布为准。

[平安银行我知道]想要知道更多?快来看“平安银行我知道”吧~

单核cpu的并行过程,求解答

CPU并行编程概述

并行编程的演化

一个自然而然的问题是:为什么要用并行编程?在20世纪70年代、80年代甚至90年代的一部分时间里,我们对单线程编程(或者称为串行编程)非常满意。你可以编写一个程序来完成一项任务。执行结束后,它会给你一个结果。任务完成,每个人都会很开心!虽然任务已经完成,但是如果你正在做一个每秒需要数百万甚至数十亿次计算的粒子模拟,或者正在对具有成千上万像素的图像进行处理,你会希望程序运行得更快一些,这意味着你需要更快的CPU。

在2004年以前,CPU制造商IBM、英特尔和AMD都可以为你提供越来越快的处理器,处理器时钟频率从16 MHz、20 MHz、66 MHz、100 MHz,逐渐提高到200 MHz、333 MHz、466 MHz⋯⋯看起来它们可以不断地提高CPU的速度,也就是可以不断地提高CPU的性能。但到2004年时,由于技术限制,CPU速度的提高不能持续下去的趋势已经很明显了。这就需要其他技术来继续提供更高的性能。CPU制造商的解决方案是将两个CPU放在一个CPU内,即使这两个CPU的工作速度都低于单个CPU。例如,与工作在300 MHz速度上的单核CPU相比,以200 MHz速度工作的两个CPU(制造商称它们为核心)加在一起每秒可以执行更多的计算(也就是说,直观上看2×200 300)。

听上去像梦一样的“单CPU多核心”的故事变成了现实,这意味着程序员现在必须学习并行编程方法来利用这两个核心。如果一个CPU可以同时执行两个程序,那么程序员必须编写这两个程序。但是,这可以转化为两倍的程序运行速度吗?如果不能,那我们的2×200 300的想法是有问题的。如果一个核心没有足够的工作会怎么样?也就是说,只有一个核心是真正忙碌的,而另一个核心却什么都不做?这样的话,还不如用一个300 MHz的单核。引入多核后,许多类似的问题就非常突出了,只有通过编程才能高效地利用这些核心。

核心越多,并行性越高

程序员不能简单地忽略CPU制造商每年推出的更多数量的核心。2015年,英特尔在市场上推出8核台式机处理器i7-5960X[11]和10核工作站处理器,如Xeon E7-8870 [14]。很明显,这种多核狂热在可预见的未来会持续下去。并行编程从2000年年初的一种奇异的编程模型转变为2015年唯一被接受的编程模型。这种现象并不局限于台式电脑。在移动处理器方面,iPhone和Android手机都有2个或4个核。预计未来几年,移动领域的核心数量将不断增加。

那么,什么是线程?要回答这个问题,让我们来看看8核INTEL CPU i7-5960X [11]。 INTEL的文档说这是一个8C/16T CPU。换句话说,它有8个核心,但可以执行16个线程。你也许听到过并行编程被错误地称为多核编程。正确的术语应该是多线程编程。这是因为当CPU制造商开始设计多核架构时,他们很快意识到通过共享一些核心资源(如高速缓存)来实现在一个核心中同时执行两项任务并不困难。

类比1.1:核心与线程

图1-1显示了两个兄弟Fred和Jim,他们是拥有两台拖拉机的农民。每天,他们开车从农舍到椰子树所在的地方,收获椰子并把它们带回农舍。他们用拖拉机内的锤子来收获(处理)椰子。整个收获过程由两个独立但有序的任务组成,每个任务需要30秒:任务1是从拖拉机走向椰子树,每次带回1颗椰子。任务2是用锤子敲碎(处理)它们,并将它们存放在拖拉机内。Fred每分钟可以处理1颗椰子,而Jim每分钟也可以处理1颗椰子。综合起来,他们俩每分钟可以处理2颗椰子。

一天,Fred的拖拉机发生了故障。他把拖拉机留在修理厂,并把椰子锤忘在了拖拉机内。回到农舍的时候已经太迟了,但他们仍然有工作要做。只使用Jim的拖拉机和里面的1把椰子锤,他们还能每分钟处理2颗椰子吗?

核心与线程

让我们来看看图1-1中描述的类比1.1。如果收获1颗椰子需要完成两个连续的任务(我们将它们称为线程):线程1从树上摘取1颗椰子并花费30秒将它带回拖拉机,线程2花费30秒用拖拉机内的锤子敲碎(处理)该椰子,这样可以在60秒内收获1颗椰子(每分钟1颗椰子)。如果Jim和Fred各自都有自己的拖拉机,他们可以简单地收获两倍多的椰子(每分钟2颗椰子),因为在收获每颗椰子时,他们可以共享从拖拉机到椰子树的道路,并且他们各自拥有自己的锤子。

在这个类比中,一台拖拉机就是一个核心,收获一颗椰子就是针对一个数据单元的程序执行。椰子是数据单元,每个人(Jim、Fred)是一个执行线程,需要使用椰子锤。椰子锤是执行单元,就像核心中的ALU一样。该程序由两个互相依赖的线程组成:在线程1执行结束之前,你无法执行线程2。收获的椰子数量意味着程序性能。性能越高,Jim和Fred销售椰子挣的钱就越多。可以将椰子树看作内存,你可以从中获得一个数据单元(椰子),这样在线程1中摘取一颗椰子的过程就类似于从内存中读取数据单元。

并行化更多的是线程还是核心

现在,让我们看看如果Fred的拖拉机发生故障后会发生什么。过去他们每分钟都能收获两颗椰子,但现在他们只有一台拖拉机和一把椰子锤。他们把拖拉机开到椰子树附近,并停在那儿。他们必须依次地执行线程1(Th1)和线程2(Th2)来收获1颗椰子。他们都离开拖拉机,并在30秒内走到椰子树那儿,从而完成了Th1。他们带回挑好的椰子,现在,他们必须敲碎椰子。但因为只有1把椰子锤,他们不能同时执行Th2。Fred不得不等Jim先敲碎他的椰子,并且在Jim敲碎后,他才开始敲。这需要另外的30+30秒,最终他们在90秒内收获2颗椰子。虽然效率不如每分钟2颗椰子,但他们的性能仍然从每分钟1颗提升至每分钟1.5颗椰子。

收获一些椰子后,Jim问了自己一个问题:“为什么我要等Fred敲碎椰子?当他敲椰子时,我可以立即走向椰子树,并摘获下1颗椰子,因为Th1和Th2需要的时间完全相同,我们肯定不会遇到需要等待椰子锤空闲的状态。在Fred摘取1颗椰子回来的时候,我会敲碎我的椰子,这样我们俩都可以是100%的忙碌。”这个天才的想法让他们重新回到每分钟2颗椰子的速度,甚至不需要额外的拖拉机。重要的是,Jim重新设计了程序,也就是线程执行的顺序,让所有的线程永远都不会陷入等待核心内部共享资源(比如拖拉机内的椰子锤)的状态。正如我们将很快看到的,核心内部的共享资源包括ALU、FPU、高速缓存等,现在,不要担心这些。

我在这个类比中描述了两个配置场景,一个是2个核心(2C),每个核心可以执行一个单线程(1T);另一个是能够执行2个线程(2T)的单个核心(1C)。在CPU领域将两种配置称为2C/2T与lC/2T。换句话说,有两种方法可以让一个程序同时执行2个线程:2C/2T(2个核心,每个核心都可以执行1个线程—就像Jim和Fred的两台单独的拖拉机一样)或者lC/2T(单个核心,能够执行2个线程—就像Jim和Fred共享的单台拖拉机一样)。尽管从程序员的角度来看,它们都意味着具有执行2个线程的能力,但从硬件的角度来看,它们是非常不同的,这要求程序员充分意识到需要共享资源的线程的含义。否则,线程数量的性能优势可能会消失。再次提醒一下:全能的INTEL i7-5960X [11] CPU是8C/l6T,它有8个核心,每个核心能够执行2个线程。

图1-2显示了三种情况:a)是具有2个独立核心的2C/2T情况;b)是具有糟糕编程的1C/2T情况,每分钟只能收获1.5颗椰子;c)是对椰子锤的需求永远不会同时发生的顺序正确版本,每分钟可以收获2颗椰子。

核心资源共享的影响

Jim为自己的发现感到自豪,他们的速度提高到每分钟2颗椰子,Jim希望继续创造一些方法来用一台拖拉机完成更多的工作。一天,他对Fred说:“我买了一把新的自动椰子锤,它在10秒内就能敲碎1颗椰子。”他们对这一发现非常满意,立即出发并将拖拉机停在椰子树旁。这次他们知道在开始收获前必须先做好计划⋯⋯

Fred问道:“如果我们的Th1需要30秒,而Th2需要10秒,并且我们唯一需要共享资源的任务是Th2(椰子锤),我们应该如何收获椰子?”答案对他们来说很清楚:唯一重要的是线程的执行顺序(即程序的设计),应确保他们永远不会遇到两人同时执行Th2并需要唯一的椰子锤(即共享核心资源)的情况。换句话说,它们的程序由两个互相依赖的线程组成:Th1需要30秒,并且不需要共享(内存)资源,因为两个人可以同时步行到椰子树。Th2需要10秒并且不能同时执行,因为他们需要共享(核心)资源:椰子锤。由于每颗椰子需要30+10=40秒的总执行时间,他们能够期望的最好结果是40秒收获2颗椰子,如

图1-2 d所示。如果每个人都按顺序执行Th1和Th2,且不等待任何共享资源,则会发生这种情况。所以,他们的平均速度将是每分钟3颗椰子(即每颗椰子平均20秒)。

内存资源共享的影响

用新的椰子锤实现了每分钟收获3颗椰子后,Jim和Fred第二天开始工作时看到了可怕的一幕。因为昨晚的一场大雨阻塞了半边道路,从拖拉机到椰子树的道路今天只能由一个人通行。所以,他们再次制订计划⋯⋯现在,他们有2个线程,每个线程都需要一个不能共享的资源。Th1(30秒—表示为30s)只能由一人执行,而Th2(10s)也只能由一人执行。怎么办?

考虑多种选择后,他们意识到其速度的限制因素是Th1,他们能达到的最好目标是30秒收获1颗椰子。当可以同时执行Th1(共享内存访问)时,每个人可以顺序地执行10+30s,并且两个人都可以持续运行而无须访问共享资源。但是现在没有办法对这些线程进行排序。他们能够期望的最好结果是执行10+30s并等待20s,因为在此期间两人都需要访问内存。他们的速度回到平均每分钟2颗椰子,如图1-2 e所示。

这场大雨使他们的速度降低到每分钟2颗椰子。Th2不再重要,因为一个人可以不慌不忙地敲椰子,而另一个人正在去摘取椰子的路上。Fred提出了这样一个想法:他们应该从农舍再拿一把(较慢)椰子锤来帮忙。然而,这对于此时的情况绝对没有帮助,因为收获速度的限制因素是Th1。这种来自于某个资源的限制因素被称为资源竞争。这个例子展示了当访问内存是我们程序执行速度的限制因素时会发生什么。处理数据的速度有多快(即核心运行速度)已无关紧要。我们将受到数据获取速度的限制。即使Fred有一把可以在1秒钟内敲碎椰子的椰子锤,但如果存在内存访问竞争,他们仍然会被限制为每分钟2颗椰子。在本书中,我们将区分两种不同类型的程序:核心密集型,该类型不大依赖于内存访问速度;存储密集型,该类型对内存访问速度高度敏感,正如我刚才提到的那样。

第一个串行程序

我们已经理解了椰子世界中的并行编程,现在是时候将这些知识应用于真实计算机编程了。我会先介绍一个串行(即单线程)程序,然后将其并行化。我们的第一个串行程序imf?lip.c读入图1-3(左)中的小狗图片并将其水平(中)或垂直(右)翻转。为了简化程序的解释,我们将使用Bitmap(BMP)图像格式,并将结果也输出为BMP格式。这是一种非常容易理解的图像格式,可以让我们专注于程序本身。不要担心本章中的细节,它们很快就会被解释清楚,目前可以只关注高层的功能。

imflip.c源文件可以在Unix提示符下编译和执行,如下所示:

gcc imflip.c -o imflip

./imflip dogL.bmp dogh.bmp V

在命令行中用“H”指定水平翻转图像(图1-3中),用“V”指定垂直翻转(图1-3右侧)。你将看到如下所示的输出(数字可能不同,取决于你电脑的速度):

Input BMP File name : dogL.bmp (3200×2400)

Output BMP File name : dogh.bmp (3200×2400)

Total execution time : 81.0233 ms (10.550 ns per pixel)

运行该程序的CPU速度非常快,以致我必须将原始的640×480的图像dog.bmp扩展为3200×2400的dogL.bmp,这样它的运行时间才能被测量出来;dogL.bmp的每个维度扩大到原来的5倍,因此比dog.bmp大25倍。统计时间时,我们必须在图像翻转开始和结束时记录CPU的时钟。

理解数据传输速度

从磁盘读取图像的过程(无论是SSD还是硬盘驱动器)应该从执行时间中扣除,这很重要。换句话说,我们从磁盘读取图像,并确保它位于内存中(在我们的数组中),然后只统计翻转操作所需的时间。由于不同硬件部件的数据传输速度存在巨大差异,我们需要分别分析在磁盘、内存和CPU上花费的时间。

在本书将要编写的众多并行程序中,我们重点关注CPU执行时间和内存访问时间,因为我们可以控制它们。磁盘访问时间(称为I/O时间)通常在单线程中就达到极限,因而几乎看不到多线程编程的好处。另外,请记住,当我们开始GPU编程时,较慢的I/O速度会严重困扰我们,因为I/O是计算机中速度最慢的部分,并且从CPU到GPU的数据传输要通过I/O子系统的PCI express总线进行,因此我们将面临如何将数据更快地提供给GPU的挑战。没有人说GPU编程很容易!为了让你了解不同硬件部件的传输速度,我在下面列举了一些:

典型的网卡(NIC)具有1 Gbps的传输速度(千兆比特每秒或一亿比特每秒)。这些卡俗称“千兆网卡”或“Gig网卡”。请注意,1 Gbps只是“原始数据”的数量,其中包括大量的校验码和其他同步信号。传输的实际数据量少于此数量的一半。我的目的是给读者一个大致的概念,这个细节对我们来说并不重要。

即使连接到具有6 Gbps峰值传输速度的SATA3接口,典型的硬盘驱动器(HDD)也几乎无法达到1 Gbps〜2 Gbps的传输速度。HDD的机械读写性质根本不能实现快速的数据访问。传输速度甚至不是硬盘的最大问题,最大问题是定位时间。HDD的机械磁头需要一段时间在旋转的金属柱面上定位需要的数据,这迫使它在磁头到达数据所在位置前必须等待。如果数据以不规则的方式分布(即碎片式的存放),则可能需要毫秒(ms)级的时间。因此,HDD的传输速度可能远远低于它所连接的SATA3总线的峰值速度。

连接到USB 2.0端口的闪存磁盘的峰值传输速度为480 Mbps(兆比特每秒或百万比特每秒)。但是,USB 3.0标准具有更快的5 Gbps传输速度。更新的USB 3.1可以达到10 Gbps左右的传输速率。由于闪存磁盘使用闪存构建,它不需要查找时间,只需提供地址即可直接访问数据。

典型的固态硬盘(SSD)可以连接在SATA3接口上,达到接近4 Gbps〜5 Gbps的读取速度。因此,实际上SSD是唯一可以达到SATA3接口峰值速度的设备,即以预期的6 Gbps峰值速率传输数据。

一旦数据从I/O(SDD、HDD或闪存磁盘)传输到CPU的内存中,传输速度就会大大提高。已发展到第6代的Core i7系列(i7-6xxx),更高端的Xeon CPU使用DDR2、DDR3和DDR4内存技术,内存到CPU的传输速度为20 GBps〜60 GBps(千兆字节每秒)。注意这个速度是千兆字节。一个字节有8个比特,为与其他较慢的设备进行比较,转换为存储访问速度时为160 Gbps〜480 Gbps(千兆比特每秒)。

正如我们将在第二部分及以后所看到的,GPU内部存储器子系统的传输速度可以达到100 GBps〜1000 GBps。例如,新的Pascal系列GPU就具有接近后者的内部存储传输速率。转换后为8000 Gbps,比CPU内部存储器快一个数量级,比闪存磁盘快3个数量级,比HDD快近4个数量级。

imflip.c中的main( )函数

代码1.1中所示的程序会读取一些命令行参数,并按照命令行参数垂直或水平地翻转输入图像。命令行参数由C放入argv数组中。

clock( )函数以毫秒为单位统计时间。重复执行奇数次(例如129次)操作可以提高时间统计的准确性,操作重复次数在"#define REPS 129"行中指定。该数字可以根据你的系统更改。

ReadBMP( )函数从磁盘读取源图像,WriteBMP( )将处理后的(即翻转的)图像写回磁盘。从磁盘读取图像和将图像写入磁盘的时间定义为I/O时间,我们从处理时间中去除它们。这就是为什么我在实际的图像翻转代码之间添加"start = clock( )"和"stop = c1ock( )"行,这些代码对已在内存中的图像进行翻转操作,因此有意地排除了I/O时间。

在输出所用时间之前,imf?lip.c程序会使用一些free( )函数释放所有由ReadBMP( )分配的内存以避免内存泄漏。

代码1.1:imflip.c的main( ){⋯}

imflip.c中的main( )函数读取3个命令行参数,用以确定输入和输出的BMP图像文件名以及翻转方向(水平或垂直)。该操作会重复执行多次(REPS)以提高计时的准确性。

垂直翻转行:FlipImageV( )

代码1.2中的FlipImageV( )遍历每一列,并交换该列中互为垂直镜像的两个像素的值。有关Bitmap(BMP)图像的函数存放在另一个名为ImageStuff.c的文件中,ImageStuff.h是对应的头文件,我们将在下一章详细解释它们。图像的每个像素都以“struct Pixel”类型存储,包含unsigned char类型的该像素的R、G和B颜色分量。由于unsigned char占用1个字节,所以每个像素需要3个字节来存储。

ReadBMP( )函数将图像的宽度和高度分别放在两个变量ip.Hpixels和ip.Vpixels中。存储一行图像需要的字节数在ip.Hbytes中。FlipImageV( )函数包含两层循环:外层循环遍历图像的ip.Hbytes,也就是每一列,内层循环一次交换一组对应的垂直翻转像素。

代码1.2:imflip.c ⋯FlipImageV( ){⋯}

对图像的行做垂直翻转,每个像素都会被读取并替换为镜像行中的相应像素。

水平翻转列:FlipImageH( )

imf?lip.c的FlipImageH( )实现图像的水平翻转,如代码1.3所示。除了内层循环相反,该函数与垂直翻转的操作完全相同。每次交换使用“struct Pixel”类型的临时像素变量pix。

由于每行像素以3个字节存储,即RGB、RGB、RGB⋯⋯因此访问连续的像素需要一次读取3个字节。这些细节将在下一节介绍。现在我们需要知道的是,以下几行代码:

只是读取位于垂直的第row行和水平的第col列处的一个像素。像素的蓝色分量在地址img[row][col]处,绿色分量在地址img[row][col+1]处,红色分量在img[row][col+2]处。在下一章中我们将看到,指向图像起始地址的指针img由ReadBMP( )为其分配空间,然后由main( )传递给FlipImageH( )函数。

代码1.3:imflip.c FlipImageH( ){⋯}

进行水平翻转时,每个像素都将被读取并替换为镜像列中相应的像素。

深圳市椰子互娱网络技术有限公司怎么样?

简介:深圳市椰子互娱网络技术有限公司,简称椰子游戏,是中国最新锐的移动互联网游戏开发商、运营商和发行商。深圳市椰子互娱网络技术有限公司致力于打造国内明星IP、文化IP第一游戏平台。椰子游戏包括多人在线角色扮演游戏、休闲轻量级游戏、互动式棋牌游戏、策略格斗游戏等多款差异化游戏产品。2015年7月,椰子游戏和盛大游戏达成战略合作伙伴。7月21日盛大游戏与椰子游戏在上海签署战略合作协议,将共同引进国际知名IP,研发新的核心游戏产品,并通过对全产业链的开发,以广义的互动娱乐为基础,深度挖掘明星IP的核心价值,在游戏、影视、动漫、衍生品、旅游等各方面进行探索。

法定代表人:喻叶

成立时间:2015-04-27

注册资本:10000万人民币

工商注册号:440301112690557

企业类型:有限责任公司(自然人独资)

公司地址:深圳市南山区粤海街道高新区北区朗山路13号清华紫光科技园A栋8楼801号

苏拉病毒???高手来看看

sola文件夹里面有两个东西functio.dll和 sola.bat看了里iande代码,发现这个是病毒作者和大家开的玩笑,于是就去找里面的解药,呵呵,最后终于在function.dll里面让我找到了,办法是在function.dll点右键打开方式里面找winrar 解压出来之后里面有个SolaKiller.rar 把他解压密码kakenhi200601 在里面有个Install.bat,双击运行,然后在开始菜单里面程序里就多了个“SOLA病毒专杀” 运行里面的SolaKiller.bat 里面有详细的说明


原文链接:https://527256.com/6217.html

相关文章

访客
访客
发布于 2022-07-05 12:27:32  回复
img[row][col+1]处,红色分量在img[row][col+2]处。在下一章中我们将看到,指向图像起始地址的指针img由ReadBMP( )为其分配空间,

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

返回顶部