Friday 29 September 2017

Fpga Em Sistemas De Negociação


Li sobre implementações diferentes de sistemas HFT em FPGAs. A minha pergunta é, que parte dos sistemas HFT são implementados principalmente em FPGAs hoje em dia. Os FPGAs ainda são muito populares. É apenas o manipulador de feed implementado nos FPGAs. Como alguns desses sistemas descritos acima possuem apenas um manipulador de feed implementado no FPGA, porque a estratégia muda Demais, ou é muito difícil de implementar em FPGAs. Outros afirmam que também implementaram estratégias de negociação em FPGAs ou usando NIC de alto desempenho em vez de FPGAs para construir sistemas HFT. Eu li sobre abordagens diferentes, mas acho difícil de comparar, pois a maioria dos resultados são testados em diferentes conjuntos de entrada. Perguntou 9 de março às 21:06 Heres uma maneira de pensar sobre isso: imagine que você pode fazer algo em um ASIC (ou seja, diretamente em hardware). No entanto, o processo de fabricação é em si caro, e você obtém um design que você não pode mudar depois. Os ASIC fazem sentido para tarefas predefinidas, como a mineração Bitcoin, algoritmos de processamento de dados bem conhecidos, etc. Por outro lado, temos CPUs comuns (assim como CPUs e GPUs de coprocessador) que são de propósito geral, mas processam um pequeno (em termos De instruções simultâneas) conjunto de instruções a uma velocidade muito alta. FPGAs são o meio termo. Eles são emuladores de hardware e, como tal, podem ser considerados 10x mais lentos do que o hardware real, mas ainda são mais performantes para operações simultâneas do que as CPUs, desde que você possa utilizar o dado para espalhar sua lógica de acordo. Alguns usos de FPGAs são: transcodificação de vídeo (por exemplo, descodificação de vídeo HD em TVs), bem como várias placas de aquisição de dados Análise de estrutura de dados fixa (análise de Regex) Simulação de sistema discreto (por exemplo, simulando o resultado de um jogo de cartas) Muito embutido corretamente Aplicativos como, por exemplo, Na pesquisa aeroespacial ou científica O problema com FPGAs para usos quant é que não é tão bom para cálculos de ponto flutuante, especialmente porque as CPUs comuns já estão otimizadas para isso com coisas como o SIMD. No entanto, para qualquer estrutura de dados de ponto fixo ou de tamanho fixo, o design FPGA permite que você configure o dispositivo para fazer muito processamento ao mesmo tempo. Algumas coisas feitas na negociação estão usando o FPGA para manipuladores de feed (analisando diretamente do fluxo de rede), bem como construindo certas partes da estrutura de negociação (por exemplo, livros de pedidos) em hardware para poder lidar com a estrutura de dados em rápida mudança sem Carregando a CPU. As FPGAs visam principalmente abordar a preocupação de processamento rápido de dados sem pagar os custos de propagação. Isto está particularmente em contraste com dispositivos como o GPGPU (ou qualquer placa de residência PCI, como o Xeon Phi) que pagam penalidades de desempenho para obter dados do dispositivo. Dito isto, as opções DMA estão melhorando a este respeito, também. FPGAs são realmente nada mais do que os mesmos blocos de lógica repetidos repetidamente em todo o silício, com switches configuráveis ​​para conectar os blocos de lógica juntos. Isso torna os FPGAs muito bons - e rápidos - em lidar com problemas repetitivos que podem ser descritos em um circuito de hardware que não muda durante a operação. E você pode ter literalmente milhares ou dezenas de milhares desses circuitos, todos funcionando em paralelo ao mesmo tempo, em apenas um FPGA. As CPUs, por outro lado, são baseadas em torno da ALU, que carrega instruções, carrega dados, opera nos dados, talvez armazena os resultados, e depois faz tudo de novo. As CPUs são muito boas - e rápidas - em lidar com problemas que estão mudando continuamente - tanto em tamanho como em escopo e na alternância entre diferentes tarefas. A CPU ou o núcleo de hoje terá dezenas a centenas de ALUs com tubulações paralelas para dados e instruções, o que os torna muito rápidos em problemas complexos que podem ser trabalhados em paralelo. Esses projetos tornam os FPGAs mais rápidos em problemas mais simples que podem ser atacados com uma vasta arquitetura paralela - como a condensação de múltiplos feeds de dados em menos de micro-segundo, de fio a fio, ou desencadear uma compra, venda ou cancelamento pré-calculados Em um preço que corresponde a um padrão específico. As CPUs são mais rápidas em problemas mais complexos que exigem menor paralelismo, como o cálculo da cesta de compras, venda e cancelamentos necessários para manter um portfólio ajustado ou integrando uma série de fontes de preços e notícias de idade e qualidade variáveis ​​em indicadores comerciais usados ​​por Comerciantes e gerentes para decidir quais os ajustes que farão no sistema de negociação. Onde FPGAs são usados ​​em HFT depende muito da arquitetura de uma determinada loja. Eles são melhor utilizados executando tarefas simples, repetitivas e amplas e realizando-as rapidamente. As CPUs são uma faca suíça que pode fazer mais nada, especialmente onde os requisitos estão mudando e as dimensões do problema não são totalmente compreendidas desde o início. Respondeu 11 de março às 17:10 Sua pergunta realmente não faz muito sentido. É como perguntar o quanto da fiação na infra-estrutura comercial usa fibra ótica e quanto dela usa cobre. A melhor resposta que podemos dar a você é que uma FPGA não é uma bala mágica. Esta é uma interpretação incorreta do livro branco Ciscos. Existe uma superposição muito pequena entre os casos de uso do tecido de troca e os de um FPGA. Que parte dos sistemas HFT são principalmente implementados em FPGAs atualmente Atualmente, os FPGAs são freqüentemente usados ​​em nossas impressoras e set-top boxes. Respondeu 9 de março às 21:55 Eu quero destacar o bloco de processamento de sinal digital (DSP) com ALUs. Os FPGAs de hoje têm centenas de blocos DSP programáveis, o maior que tem milhares. Agora, de repente, você tem milhares de pequenos processadores à sua disposição, todos capazes de realizar cálculos em paralelo. Isso é muito superior ao paralelismo fornecido pelo Xeon Phi ou GPUs. Na verdade, se você estiver fazendo modelagem de preços de opções ou modelagem de risco estocástico no FPGA, você pode obter mais de 100 vezes o aumento no desempenho em comparação com as GPUs mais recentes e ainda mais em comparação com as últimas CPUs. Junto com os blocos DSP, o outro fator importante neste ganho de desempenho é o cache de memória. O FPGA possui RAM RAM distribuída que é extremamente rápida, permitindo que a largura de banda de 100 TB seja alcançada no nível do datapath. O uso de FPGAs de hoje para estratégias de algoritmo oferece um recurso de computação grande e massivamente concorrente capaz de dar um aumento de desempenho de 100 a 1000 vezes em comparação com GPUs ou CPUs. A principal ressalva é que você teria que se tornar proficiente na escrita em Verilog ou VHDL :) Sanjay Shah CTO Nanospeed respondeu 5 de agosto às 18:05 Uma variedade de poderosos processadores de vários núcleos estão começando a entrar no hardware Espaço de aceleração que anteriormente era completamente propriedade de FPGAs. Empresas como a Tilera, a Adapteva e a Coherent Logix fornecem todos esses processadores aqui nos EUA, e a Enyx da França também faz incursões. A verdadeira medida de eficácia desses processadores massivamente paralelos reside na maturidade de suas ferramentas de software. É aí que o potencial usuário deve concentrar sua atenção. Ninguém quer programar ou depurar dezenas ou centenas de núcleos usando técnicas manuais. Claro, é evidente que a largura de banda IO é tão importante. Na minha experiência pessoal neste espaço, eu vejo a adoção pelos clientes dos processadores Coherent Logix como co-processadores ou aceleradores de hardware para aceleração de linguagem em C. Ao aproveitar o ciclo de design rápido de um ambiente baseado em C, alguns programadores podem ajustar o código para o conteúdo de seus corações e não se preocupar com a codificação HDL dispendiosa e intensiva em tempo para FPGAs. O particionamento ideal é que os FPGAs façam o que melhor fazem - repararam operações repetitivas - e os processadores de vários núcleos fazem o que melhor fazem: acelerar a produtividade e a velocidade de execução dos desenvolvedores. John Irza, Gerente de Desenvolvimento de Negócios, Coherent Logix, Inc. respondeu em 6 de agosto às 0:42 Quase todas as lojas HFT usam a arquitetura FPGA. Esses dispositivos precisam ser substituídos com freqüência, já que são rapidamente superados pelas últimas melhorias em velocidade, pipelines, paralelismo, etc. A menos que você esteja pronto para investir 2 milhões por ano, descubra outra estratégia. Muitas pessoas estão fazendo movimentos de preço diários com caneta e papel estão fazendo bilhões em Omaha, NB. Respondeu Jul 28 16 às 10:31 Sua resposta 2017 Stack Exchange, IncFramework acelera o desenvolvimento de aplicativos de sistemas financeiros de baixa latência. Desde o advento do comércio eletrônico, uma corrida de velocidade se seguiu para construir as plataformas de negociação mais rápidas e inteligentes. O tempo de resposta diminuiu de segundos, em milissegundos, para microssegundos. A unidade para o tempo de resposta de microssegundo e sub-microssegundo simplesmente não é possível com o software tradicional ou arquiteturas de hardware simples, um fato que impulsiona a adoção de tecnologia de matriz de portas programável em campo (FPGA) em sistemas de latência ultralateral. Para reduzir o risco envolvido no desenvolvimento de código de linguagem de descrição de hardware (HDL) nativamente em uma placa Ethernet FPGA, ao mesmo tempo que reduz o tempo de desenvolvimento, a AdvancedIO foi pioneira no uso de frameworks FPGA para comunicações de 10 Gigabit Ethernet (10GE). O conjunto de ferramentas de estrutura de desenvolvimento AdvancedIO expressXG fornece a infra-estrutura necessária para garantir a rápida implantação de serviços financeiros e permite uma portabilidade perfeita para a última geração de cartões FPGA. - Rafeh Hulays, PhD, Vice-Presidente, Desenvolvimento de Negócios, AdvancedIO Systems Inc. Informações adicionais O sistema baseado em APIs supera as plataformas de negociação CPU e híbridas CPUFPGA, consolidando o gerenciamento de alimentação, lógica de gatilho comercial e entrada de pedidos em um único FPGA. Seattle, WA ndash 14 de setembro de 2010 - os sistemas de negociação no FPGAtrade (infpga) anunciaram hoje um projeto de referência comercial automatizado acelerado por hardware que executa o manuseio de alimentação NASDAQ ITCH e entrada de ordem OUCH de saída em 10Gb Ethernet, com menos de dois microsegundos de latência . O sistema deve ser mostrado no show e conferência de mercados financeiros de computação de alto desempenho 2010, stand 424, em Nova York em 20 de setembro de 2010. O sistema FPGA permite que os comerciantes obtenham latências de resposta que são uma fração do que pode ser Alcançado usando sistemas baseados em CPU. Os visitantes do show poderão ver o hardware real usado para decodificação de dados de mercado e entrada de pedidos de saída, com todas as funcionalidades executadas inteiramente na lógica Field Programmable Gate Array (FPGA) de alto desempenho. O sistema resultante atinge a latência de 2 microssegundos atualmente, com as melhorias esperadas no throughput sendo feitas ao longo de 2010. Essas plataformas de referência baseadas em FPGA operarão em várias vezes a velocidade de servidores com maior microprocessador. O comércio realizado por sistemas tradicionais baseados em CPU, com freqüência implementado como servidores Linux com hardware de interface de rede fora da prateleira, atinge tempos de resposta na ordem de dezenas de microssegundos. Em alguns casos, a funcionalidade de gerenciamento de feed é acelerada usando FPGAs dentro de servidores Linux, com resultados processados ​​por um aplicativo baseado em CPU. A abordagem in-FPGA é integrar todas as três principais funções de negociação: manuseio de alimentação, lógica de gatilho de comércio e análise e entrada de ordem de saída em um único FPGA, com pouca ou nenhuma necessidade de uma CPU host. A solução em FPGA, portanto, permite que os comerciantes atinjam novos níveis de latência do tempo de resposta. Como um FPGA é o núcleo da plataforma de negociação, toda a lógica de negociação é implementada diretamente em hardware. A implementação de todas as funções necessárias no hardware fornece uma aceleração, eliminando a sobrecarga de recursos compartilhados, incluindo ônibus e sistemas operacionais. A lógica de negociação específica exigida por um cliente é reduzida ao hardware usando um compilador C-to-FPGA otimizado feito pela Impulse Accelerated Technologiestrade. O FPGA ajuda os clientes fornecendo plataformas de referência de trabalho, juntamente com treinamento de desenvolvedores de aplicativos, permitindo que os clientes obtenham latências baseadas em FPGA e sejam implantados em centros de dados no menor tempo possível. O sistema FPGA é fornecido como um chassi padrão de rack de 1U que inclui uma placa de processamento FPGA. O quadro possui um poderoso Altera Stratixreg IV FPGA. Plataformas personalizadas que permitem maiores densidades de FPGA estão disponíveis. A plataforma de desenvolvimento inclui o compilador Impulse Ctrade-to-FPGA, que permite aos clientes adicionar ou modificar seus algoritmos de lógica comercial comercial. Os sistemas FPGA são fornecidos com um aplicativo de referência baseado em FPGA para um manipulador de alimentação do ITCH e um módulo de entrada de ordens OUCH de saída. LdquoItrsquos tudo sobre latência de negociação, rdquo disse Cameron Elliott, designer-chefe do sistema FPGA. O negócio baseado em ldquoFPGA pode responder aos dados do mercado uma ordem de grandeza mais rápida do que os servidores baseados em Linux e 2-5 vezes mais rápido que os sistemas híbridos CPUFPGA. Grande parte do ganho vem da simplificação do caminho do hardware, consolidando o processamento em um chip de hardware e eliminando caminhos de alta latência. O que torna isso mais emocionante para os comerciantes é que eles podem implementar sua lógica de gatilho comercial em linguagem C usando Impulse C, ao invés de ter que aprender linguagens de descrição de hardware, como Verilog ou VHDL, ou ter que passar seus modelos para engenheiros de hardware para tradução As ferramentas de. rdquo Impulse são usadas nas principais empresas financeiras e hedge funds onde eles equiparam matemáticos e desenvolvedores de algoritmos para melhorar drasticamente a latência. O sistema de negociação e o aplicativo de referência no FPGArsquos permitem que os desenvolvedores de software usem a aceleração de hardware para o processamento Ethernet de 10Gb, disse David Buechner, vice-presidente de Impulso. Isso oferece uma tecnologia disruptiva para empresas comerciais que querem ser as primeiras na fila com seus negócios. Fundada em 2002, a Impulse Accelerated Technologies fornece ferramentas C-to-FPGA, treinamento e soluções personalizadas para sistemas acelerados por hardware. Impulse C foi usado para projetar sistemas de visão, manipuladores de alimentação financeira e aceleradores de grade de banco de dados. Os produtos de impulso estão em uso em mais de metade dos fornecedores de automóveis, oito dos dez maiores empreiteiros, a maioria das agências governamentais dos EUA e centenas de laboratórios RampD em todo o mundo. ImpulseAccelerated ImpulseC Sobre os sistemas de negociação in-FPGA Os sistemas de negociação FPGA são um inovador tecnológico que traz plataformas e aplicativos de referência baseados em FPGA avançados para a comunidade comercial financeira. O FPGA também oferece serviços de treinamento de equipe de engenharia, permitindo que clientes comerciais personalizem projetos de referência para seus ambientes específicos. Infpga Cameron Elliott, inFPGA (866) 808-5757 infoinfpga Brian Durwood, Impulse Accelerated Technologies, Inc. (425) 605-9542 109 Brian. DurwoodImpulseC

No comments:

Post a Comment