我正在尝试构build一个处理服务器来处理位图处理以及用于色度键控图像和Photoshop自动化的openGL渲染。 我在这里和谷歌的search结果出乎意料的less,看到没有位图或image processing的标签,我认为这是一个专门的应用程序。
位图处理是非常cpu密集型的,而色度键和Photoshop的东西是gpu密集型的。 我怀疑这是一个过度优化的情况,因为我们公司每天成千上万的图像(目前在单个工作站上),任何节省处理时间和工作站停机时间都是有益的。
有没有人有这种types的处理服务器的任何经验? 任何特殊的考虑,会进入这样的构build,还是我过度思考?
对于位图处理,我们使用的是C#类System.Drawing.Imaging和System.Drawing.Drawing2D ,它们是GDI +库。 我们使用System.Threading来运行这个multithreading。 对于色度键控我们使用的是OpenGL的Primatte,但我并不熟悉它使用的其他库。
稍后我pipe理了一个类似的服务器集群(两个成员集群),我的基本方法是CPU bottleneck... max out processor speed and core count 。 这也是在高端服务器,有大量RAM,高容量固态硬盘(用于快速访问临时存储在其上的图像)和多个1Gbit网卡,再次以最大化性能,从而处理图像的吞吐量。
工作得很好,而且对于什么是关键业务function来说,工作量很大,MBA和其他西装很乐意投入额外的25000美元硬件来使事情顺利进行。 一旦我把我推荐给他们的好处,至less。 是的,我认为你至less有点过度思考这个问题。 从“只是”抛出强大的硬件问题开始。 如果这不能提供所需的性能,那么您需要担心优化代码和检查stream程瓶颈。
在我进入创build和“推销”我的build议的基本过程之前,让我指出一个SA格言:
It's better to over-engineer than under-engineer.
我想说,你的情况听起来很相似,我会build议一个类似的方法。 而且我想下面的任何一个都不是严格意义上的“系统pipe理”,所以你可能在这里停止阅读,但是它们都是非常密切相关的,如果你不能有效地向业务部门推销你的build议,那么系统pipe理和架构就是地狱…如果可以的话,你可以称自己为系统工程师/架构师,并且要求更多的钱用于本质上相同的工作,因为你有能力将你的想法简单地用于“慢儿”。 (高pipe和MBA)
we made $[x] from this last year, on [y] images processed, for a profit of $[z]/image processed, or $[i]/day. 然后,我将硬件的成本转换为相似的单位 – $[x] total CapEx, or $[z]/image processed or $[i]/day 。 (当不同的未来“预测”存在时,对于“预测的”未来数字也是这样做的。) buy a single mid-range server and slap our image processing stuff on that $70 a day大约$70 a day , <10 cents an image processed …我们在处理的每张图片上都10 cents了10 cents 。 several hundred dollars an hour )的费用,并增加了定性好处( supportability , ease of management等)和成本( reputation damage , angry clients等)顶上的樱桃。 然后再次指出,我推荐的解决scheme$70 a day只需要$70 a day 。 无论如何,这是一个更长,更less的技术比我预期…但我希望你觉得有帮助。