Я пытаюсь разработать сборку для сервера обработки для обработки растровых изображений, а также рендеринга openGL для изображений с хроматическим ключом и автоматизации Photoshop. Мои поиски здесь и в Google дали на удивление мало результатов, и, поскольку там нет тегов для растровых изображений или обработки изображений, я полагаю, что это специализированное приложение.
Обработка растровых изображений требует очень больших ресурсов процессора, в то время как обработка цветного ключа и Photoshop требует большого количества графических процессоров. Я сомневаюсь, что это чрезмерная оптимизация, поскольку наша компания загружает тысячи изображений в день (в настоящее время на отдельных рабочих станциях), и любая экономия времени на обработку и время простоя рабочей станции будет полезна.
Есть ли у кого-нибудь опыт работы с таким типом серверов обработки? Есть ли какие-то особые соображения, которые следует учесть в подобной сборке, или я слишком много об этом думаю?
Для обработки растровых изображений мы используем классы C # System.Drawing.Imaging
и System.Drawing.Drawing2D
которые являются библиотеками GDI +. Мы запускаем это многопоточное, используя System.Threading
. Для хроматического ключа мы используем Primatte, который является openGL, но я не знаком с другими библиотеками, которые он использует.
Некоторое время назад я администрировал несколько похожий кластер серверов (двухчленный кластер), и мой базовый подход был ~CPU bottleneck... max out processor speed and core count
. Он также был на высокопроизводительных серверах с большим объемом оперативной памяти, твердотельными накопителями большой емкости (для быстрого доступа к изображениям, которые были временно сохранены на нем во время обработки) и несколькими сетевыми адаптерами 1 Гбит, опять же, чтобы максимизировать производительность и, следовательно, пропускную способность обработанных изображений.
Работал очень хорошо, и с большой нагрузкой на критически важную для бизнеса функцию, MBA и другие специалисты были счастливы вложить дополнительно ~ 25000 долларов в оборудование, чтобы все работало гладко. По крайней мере, однажды я дал им все преимущества своей рекомендации. И да, я думаю, вы слишком много думаете об этом, по крайней мере, немного. Начните с "простого" использования мощного оборудования для решения проблемы. Если это не обеспечивает требуемой производительности, вам нужно побеспокоиться об оптимизации кода и изучении потока процесса на наличие узких мест.
Прежде чем я перейду к своему основному процессу создания и "продажи" моей рекомендации, позвольте мне указать на одну из фраз SA:
It's better to over-engineer than under-engineer.
Я бы сказал, что ваша ситуация очень похожа на мою, и посоветовал бы аналогичный подход. И я полагаю, что ни одно из нижеприведенных не является строго «системным администрированием», так что вы, вероятно, можете перестать читать здесь, но все это очень тесно связано, и если вы не можете эффективно продавать свои рекомендации бизнес-подразделениям, системное администрирование и архитектура - ад ... если вы можете, вы можете называть себя системным инженером / архитектором и требовать больше денег за ту же работу, потому что у вас есть возможность выразить свои идеи в простых числах для «медлительных детей». (Руководители и 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
. (И когда существует другой «прогноз» будущего, сделайте то же самое для «прогнозируемых» будущих чисел.) $25,000
моя рекомендация стоит больше первоначального предложения ~buy a single mid-range server and slap our image processing stuff on that
сломался примерно до $70 a day
, и <10 cents an image processed
... и мы сделали много больше, чем 10 cents
на каждом обработанном нами изображении.several hundred dollars an hour
) и добавил качественные преимущества (supportability
, ease of management
и т. д.) и затрат (reputation damage
, angry clients
и т.д.) как вишенка на вершине. А затем еще раз отметил, что рекомендованное мной решение стоит только $70 a day
.В любом случае, это намного больше и менее технически, чем я ожидал ... но я надеюсь, что вы сочтете это полезным.