Each of the systems you mentioned can partition data over many machines and parallelize SELECT queries. However, they each address different use-cases. Can you share more details about the use-cases you're targeting? You can also contact us privately.
One of the biggest benefits of Citus over other solutions is that it is an extension to PostgreSQL 9.5, rather than a fork. This means that you can always use the latest PostgreSQL features and performance enhancements, use it in combination with other extensions, and operate it as you would a normal PostgreSQL database.
Citus is geared towards a high rate of fast, simple transactions (single statement), high throughput bulk loading, and a high rate of subsecond analytical queries. It also integrates with extensions like cstore_fdw for columnar storage and hll for fast distinct counts. A limitation is that it does not support all SQL queries or complex transactions.
Postgres-XL is geared towards complex transactions, but with more per-transaction overhead. As far as I understand, it only uses one core per machine for analytical queries, which limits the speed-up. Another limitation is the lack of built-in fail-over for data nodes.
GreenPlum and Redshift are data warehouses, which are geared towards high throughput bulk loading and answering complex analytical queries in a few seconds or minutes. Limitations of data warehouses include high planning overhead and low query rates.
If you need interactive analytics (e.g. in an application with many users) or need to scale out simple transactions: Citus
If you need multi-statement ACID transactions: Postgres-XL
If you need to run complex reporting queries: GreenPlum / Redshift
Hope this helps,
Marco