У обоих терминов нет строгих границ применения. Фермой обычно называют подмножество независимых, но взаимозаменяемых серверов, выполняющих одинаковые роли, по которым распределяется нагрузка, т.е. ферма это результат ярко выраженного горизонтального масштабирования. В high load приложении может быть несколько разных ферм, каждая из которых специализируются на какой-то одной задаче. Кластером в параллельных вычислениях называют группу машин состоящих из одинаковых узлов (с одинаковым оборудованием) обладающих одинаковой производительностью (в отличии от грида, который строится из разномастных узлов). Кластером в enterprise-сетях обычно называют группу машин с общим (или синхронизованным) хранилищем данным и общей конфигурацией кластера, которые функционируют как единая вычислительная структура для enterprise-софта поддерживающего кластеризацию, такую кластеризацию в некоторых ситуациях можно отнести к вертикальному масштабированию, а не к горизонтальному. Но в более общем смысле кластер и ферма могут быть использованы как синонимы.
P.S. в общем - миллион муравьев, строящих один муравейник - это ферма. Три лошади запряженных в одну упряжку - это кластер.