IC设计中的IT环境(1)

上一篇 / 下一篇  2008-03-31 11:12:52 / 个人分类:EDA软件相关

                      高性能集成电路设计IT环境

                                          ----王光辉

前记:

我在芯片设计公司工作的几年中,接触到了很多IC设计环境,这些环境离不开IT的支持,但是由于芯片设计有其特殊性,一般的IT系统集成商根本没办法做好支持。另外,中国的大部分IC设计公司还属于创业阶段的公司,这些公司往往资源不足,也没有太多的钱去配置高价格的设备,所以我萌生了写一篇能适合中小IC设计公司使用的文档,这份文档将会汇集我几年工作中对于这类公司IT环境建设的体会。由于每个公司都会有其特别之处,所以我写的文档不一定完全符合你的要求,但是我会写一个符合大部分中小IC设计公司的文档。对于服务器,我选择了性价比最好的x86linux的服务器。这篇文章前后经过了好几年,每次都是写一半,然后就放下没再拿起来。等下一次写的时候,发现整个环境已经改变,所以又不得不修改很多内容。IC设计环境是一个不断发展的过程,所以如果你看到这篇文章的时间跟我写的时间差别太大,请联系我了解最新的情况吧。

Update2008-3-13):synopsys已经release支持multicoreHspice了,接下来还会release其他软件的multicore版本。也就是说,以后很多软件可以并行跑,对于当前IC设计中单进程跑很久的job是一个极大的好消息。

 

个人简历:

200438,入职到苏州中科集成电路设计中心做系统管理员的工作。在这之前,我在大学网络中心兼职,学习了solarislinux的系统管理。工作之后全力进入一个新的领域:IC设计环境。从安装IC设计软件开始,了解各种IC设计软件对操作系统版本,Glibc库,内核,内存等要求;同时学习了基于flexlm license management软件的各种配置和含义;设计了一个通过VPN进行license分发的环境。苏州中科是sun sparc的设计环境,但是我却在工作后通过对比,发现基于x86linux环境更加适合IC设计中的大部分阶段,比如simulationverificationrouting等。在中科,我接触了苏州大部分的IC设计公司,学习了他们的环境,也加深了我对整个系统环境的理解。

 

200645,入职到盛科网络(苏州)有限公司,做IT Manager。事实上,目前为止,我的工作仍然不太忙,大部分都是杂事。因为我设计了一个很好的IC设计环境,几乎都不需要太多时间来维护。当然,我也走过不少弯路,比如服务器不稳定等问题。这些问题的解决,大部分都是经验积累的过程。我希望别人少走弯路。盛科的IC设计环境是我一直都认为非常优秀的环境,因为这个环境下设计出了好几颗大型芯片。比如IPv4/v6双栈万兆以太网交换核心芯片“Bay”,芯片规模达到1100万门电路、集成9600万个晶体管,采用0.13u高速CMOS芯片工艺。但是这个环境的所有设备成本不到50RMB,都是价格低廉的x86服务器组成,价格最高的一台服务器也不过5RMB。当然,要是EDA软件方面有问题,也可以找我。尽管我不做IC设计,但是我们公司所有EDA软件相关问题,基本都是我解决,因为我熟悉系统,我熟悉软件,我熟悉相关的各个方面。

 

联系方式:wanggh# @gmail.com

Mobile13606212363

 

IC设计环境目前几个方面的需求

 

a.  操作系统版本要求限制比较严格

b.  低成本和高性能要求

c.  免费的集群环境软件

d.  用户使用方便

e.  快速稳定方便的存储系统

f.   明晰的目录结构设计和权限管理

g.  在跨平台环境下使用

h.  安全的外部VPN接入

i.    低成本的服务器硬件

j 版本控制和bug控制

 

IC设计环境范例:

 

A公司:服务器集群+基于windows的客户端,通过vncsamba访问服务器,所有的Job都在服务器上run。好处是客户端简单易用,特别是用户可以使用自己喜爱的windows平台下的编辑器编辑代码,比如UltraEdit等。并且对于不熟悉linux的用户也很方便,几乎不需要培训就可以很快进入工作状态。

B公司:Linux服务器+Linux的客户端,通过X-Windows转发使用eda软件。这样的优点是可以在服务器繁忙的时候,利用客户端的PC来工作,特别是现在的客户端PC计算能力都非常强的情况下。

 

综上,其实采用什么样的结构,需要结合实际情况考虑。任何一种结构都会有它自己的优缺点。建议:采用Linux的服务器集群+OS的客户端,这样可以由用户端自行选择。

 

IC设计中集群的一般情况:

 

IC设计环境中的集群一般情况下并不能缩短单个进程的运行时间,它只是帮助你有效调度,将空闲时间都利用上。目前的这类软件有openpbs,grid engineelsf等。部分EDA软件可以做到缩短运行时间,比如mentorcalibre,但是它主要是软件自身的一个功能,大部分软件是没办法做到的。但是,用户完全可以把job分成多个片段,逐个计算,这样就可以分布在多台服务器上同时run了。

 

下面先给出一个集群环境的一般网络结构图,以方便大家能更快理解我提出的几个问题。

图中的工作站可以理解为带有linux+windows双操作系统的PC

 

下面我们回到前面提出的几个要求上来,看看我们如何看待和解决这些问题。

 

1.  操作系统版本要求限制比较严格。

每个软件对OS的版本要求不完全相同,而我们在服务器上一般只安装一个版本的OS

大部分的IC设计软件在目前都支持redhat enterprise 3suse 9,部分支持redhat enterprise 4。但是为了统一OS平台,我们目前最好选择redhat enterprise 3 update 8。这个选择只适合大部分情况,需要根据你的需求进行修正,也许07年下半年,大部分都只选择redhat enterprise 4作为基本平台了。某些早期的软件还要求只能使用redhat 7.2,但是如果你真选择了redhat 7.2,你现在买的服务器能否安装上redhat 7.2都是一个问题。

这里我们要注意一个原则:OS一定要选择最新update的,EDA软件要能支持这个平台。EDA软件一般选择较新的版本,最新的可能引入了某些bug,所以谨慎使用,但是新版本一般会提升性能和加强功能。比如synopsysdc,在新的版本中引入了新的数据格式,结果是内存使用减少一半左右,而速度同时提升了一倍以上。对于软件版本的选择,确实是一个非常头疼的问题,即便是非常熟悉的人员,他也得考虑你的环境才能给出建议,所以最好做好这方面的咨询。

其他的Linux发行版大部分情况下也是可以支持,但是一旦存在问题的时候,我们解决起来就会很麻烦。所以,我强烈推荐redhat enterprise。当然,centos也是可以使用的,只是,某些软件会去检查是否是redhat,比如vcs会检查/etc/redhat-release文件,如果没有找到redhat字样,就会报错,还会报告编译方面的错误,让你花费大量时间去检查编译器和库文件问题,结果根本不是那里的问题。Redhatenterprise是可以免费从redhat网站download的,只是没有购买软件授权而没有技术支持而已。

 

Notes:等我在083月末修改这篇文章的时候,我发现很多软件目前都支持redhat enterprise 4.0了,当然update要选择最新的。所以,如果你是做数字IC设计的,请尽量选择用redhat enterprise4.0作为OS的基本平台。同时,考虑到数字电路的规模越来越大,请考虑采用x86_64版本,当你有需求的时候,可以用64位的IC设计软件,获取大内存的支持。

 

2.  低成本和高性能要求

中小公司对于成本的控制的同时,要求获取高性能的系统。

高性能的设计环境一般需要高性能的cpu支持,不同的服务器平台有很大的差异。在2004年以前,几乎所有的IC设计环境都是sun服务器的天下,少部分采用HPIBM的服务器。但是几乎清一色的RISC架构服务器。为什么会出现这种情况?因为几乎所有的EDA软件都只支持UNIX平台,同时因为sun服务器的易用性好,性价比高而获得了特别青睐。但是这种情况在03年开始改变,而04年以来,在中国很大部分新买的服务器都没有再采用Sun的服务器了。因为linuxx86服务器的性价比更高。

Linux服务器的性价比到底多高?我想举例来说明。苏州中科集成电路设计中心机房的IC设计服务器是03年采购的,基本都是Sun的服务器。服务器是双CPUBlade20004G内存,价格大约10万一台。05年成立的盛科网络(苏州)有限公司采购的全是x86linux服务器,配置同样为双CPU4G内存,价格大约2.5万。以上两个配置的服务器,同样跑一个vcssimulationSun服务器完成时间大约比Linux服务器的多2倍。这样的性价比会让大部分的公司都做出正确的选择。

 

Notes:盛科05买的第一批服务器,目前的性能看起来就非常差了。他们的性能只有06年采购的基于单核心Opteron的服务器的70%,比起后来的双核以及4核心处理器的差别就更大了。目前盛科的一台最新的服务器,配置为2*XEON 5430,8*2G内存,价格大约2.6万。但是整体性能保守估计是05年采购的第一批linux服务器的5倍以上,价格跟当初购买的服务器差不多。

 

3 免费的集群环境软件

集群环境的软件最好能免费,否则大量软件费用的支出是一个中小公司无法承受的。

大部分的外资IC设计公司使用LSF来作为集群环境的管理软件。在这里给platform公司做一小广告。LSF对于IC设计环境来说,确实很不错,可以说是IC集群环境中使用的最多的集群管理软件。但是,这个软件的授权价格费用很高,一般的小公司承受不了,对于初创公司,更是一笔很大的开支。所以我推荐使用sun grid enginee,基本能满足要求。Sun是一家伟大的公司,它把很多我们喜欢的东西都开源了,对于小公司来说,这是很幸福的事情。Sun Grid Enginee尽管目前还没lsf做的好,但是就凭借不花钱这一条,对预算紧张的公司来说都是值得部署的。

 

4 用户使用方便
使用方便,对使用者(用户)的培训必须短,用户能自行很快上手。

集群软件的使用使用命令很少,以前提交的命令前面加入qsub就可以提交到default queue了。例如:

$qsub  job.sh

$qstat

同样,用户从windows登录服务器的时候,可以通过vnc登录,通过samba访问后用UltraEdit来编辑代码。如果用户使用的是linux的客户端,完全可以ssh到服务器后,在服务器上直接run job或者提交到集群,或者打开GUI的软件,通过X-Windows转发,对用户来说,都是非常简单方便的。

最重要的是对使用者来说,服务器上的所有一切都是透明的,他不用关心服务器的软件在哪儿,Jobs会在哪台服务器上跑。他只需要提交到队列,然后自己等结果即可。所有者一切,都是通过自动的调度完成。

TAG: 设计 人间 高性能 环境 集成电路

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)