Programação funcional multithread no Swift

Ultimamente, tenho manipulado matrizes de bytes no Swift 2.1, e frequentemente me pego escrevendo código assim:

// code to add functions to a [UInt8] object
extension CollectionType where Generator.Element == UInt8 {

    func xor(with byte: UInt8) -> [UInt8] {
        return map { $0 ^ byte }
    }
}

// example usage: [67, 108].xor(with: 0) == [67, 108]

Existe uma maneira fácil de paralelizar issomap para que vários threads possam operar em áreas não sobrepostas da matriz ao mesmo tempo?

Eu poderia escrever código para dividir manualmente a matriz em sub-matrizes e chamarmap em cada sub-matriz em segmentos distintos. Mas eu me pergunto se existe alguma estrutura no Swift para fazer a divisão automaticamente, já quemap é uma chamada funcional que pode funcionar em um ambiente seguro para threads sem efeitos colaterais.

Notas esclarecedoras:

O código só precisa funcionar em um[UInt8] objeto, não necessariamente todoCollectionType.Estou escrevendo este código apenas para aprender Swift, não para qualquer tipo de entrada do mundo real. Afinal, o xor roda extremamente rapidamente sem nenhum tipo de paralelismo necessário.Se for absolutamente necessário, a função acima pode ser vista no contextoaqui, onde é usado para resolver o Conjunto 1, Desafio 3 doDesafios da Matasano Crypto.