Масштабируемость в компьютерном алгоритме - PullRequest
0 голосов
/ 19 сентября 2018

Какие факторы определяют масштабируемость с точки зрения компьютерного программирования?Если моя программа работает с большими и меньшими базами данных, могу ли я сказать, что моя программа масштабируема?Определяется ли масштабируемость только с точки зрения времени и затрат, необходимых для выполнения определенной программы?

Ответы [ 3 ]

0 голосов
/ 19 сентября 2018

Слово «масштабируемость» обычно не применяется к алгоритмам.Он применяется к системам или приложениям и относится к тому, насколько практично расширять развертывание этого приложения или системы для обработки растущих нагрузок.

Если у вас, например, работает биллинговая система на кластере компьютеров, тогда вы бы назвали это «масштабируемым», если вы можете легко добавить больше компьютеров в кластер для учета нагрузки при увеличении клиентской базы в 2, 5, 10 раз и т. д., и если количество компьютеров, которые вам требуются, остается пропорциональным количествуклиенты.

Такая система может не быть масштабируемой, например, если она была поддержана базой данных SQL и между транзакциями было много конфликтов.В таком случае вы не сможете справиться с большим количеством пользователей, просто добавив больше компьютеров, потому что они просто будут ждать друг друга все время.

0 голосов
/ 23 сентября 2018

Вы должны быть в состоянии предоставить некоторые четкие оценки того, как среда выполнения развивается с большим количеством узлов данных / обработки .И обычно это увеличение должно быть линейным или не более O (n log n) с количеством данных, чтобы алгоритм был масштабируемым.С количеством узлов вы бы хотели приблизиться к возможности сократить время выполнения на m при использовании m узлов.

На основании выше:

  • сортировка вставки недоступно - O (n²)
  • доступна сортировка слиянием - O (n log n)
0 голосов
/ 19 сентября 2018

Масштабируемость всегда связана с чем-то другим.Таким образом, сказать, что программа «масштабируема» - это неаккуратный термин.

  • программа может масштабироваться с размером БД

  • программаможет масштабироваться с количеством (одновременных) пользователей

  • программа может масштабироваться с размером входного сигнала

  • ...

Кроме того, что означает «весы», не совсем ясно.В некоторых случаях это может означать линейный рост, в других случаях практически не увеличивается время обработки ...

Часто это просто означает: пользовательский опыт приемлем даже при большой нагрузке или большом увеличении числа пользователей..

Так что, если кто-то говорит, что программа масштабируется.Вы всегда должны спрашивать, что именно подразумевается под этим, если обстоятельства не подразумевают, что именно подразумевается под этим.

...