Thursday 14 December 2017

Fpga based trading systems


Estamos buscando um Engenheiro de FPGA experiente para se juntar à nossa equipe existente e ser responsável pela pesquisa, design e implementação de soluções de FPGA para Citadels negociação de negócios desenvolvendo negociação ultra-baixa de latência Sistemas. Temos uma equipe de desenvolvimento pequena e altamente experiente que está trabalhando em novos projetos FPGA em uma linguagem de descrição de hardware, executando análise de tempo, validando e depurando desenhos para erros e eficiência. Trabalhar com a equipe no desenvolvimento e implementação de sistemas proprietários de negociação de hardware, desde o conceito até a produção. Crie design e verificação digital para maximizar a eficiência e o desempenho para processar grandes quantidades de dados em todos os sistemas de negociação. Envolva-se no design de sistemas de negociação financeira personalizada com base em FPGA de alta latência ultra baixa, para acelerar a geração de sinais de comércio algorítmicos e a execução de ordens. O rápido giro e feedback imediato de projetos operacionais, bem como avaliar latência e throughput. 3 anos em design FPGA, incluindo o ciclo de vida completo do projeto FPGA, incluindo arquitetura de hardware, codificação RTL, simulação, integração de sistemas, validação de hardware e testes. Experiência com software de design Altera é um plus, mas a experiência com Xilinx software de design também é um plus. Experiente e bem versado no Sistema Verilog e VHDL (Sistema Verilog, Verilog, C, Bash, ou Makefile). Experiência de construção de sistemas digitais para uma variedade de domínios, incluindo a experiência de comunicações com fio / sem fio com negociação e finanças computacionais é altamente desejada. Familiarizado com as ferramentas de síntese FPGA e análise de tempo estático são desejáveis, mas não exigido. Familiarizado com os princípios da construção de bancos de teste aleatórios automatizados, auto-verificados. A familiaridade com o uso de ferramentas de depuração no chip, como Alteras SignalTap ou Xilinxs ChipScope, é altamente desejável. Familiaridade com a linguagem C para incorporação de recursos de modelagem de software. Deve ter fortes habilidades de resolução de problemas, ser adaptável e ser orientado em equipe. Experiência financeira não é necessária. Educação: Bacharelado em Engenharia Elétrica, Engenharia de Computação, ou Mestrado em Ciência da Computação preferido. Candidatar-se a esta posição: O Framework acelera o desenvolvimento de aplicações de sistemas financeiros de ultra baixa latência. Desde o advento da negociação eletrônica, uma corrida pela velocidade se seguiu para construir as plataformas de negociação mais rápidas e inteligentes. O tempo de resposta diminuiu de segundos, para milissegundos, para microsegundos. A unidade para o tempo de resposta de microssegundo e sub-microsegundo simplesmente não é possível com o software tradicional ou arquiteturas de hardware simples, um fato que está impulsionando a adoção da tecnologia FPGA (field programmable gate array) em sistemas de latência ultra-baixa. Para reduzir o risco envolvido no desenvolvimento de código de linguagem de descrição de hardware (HDL) nativamente em uma placa Ethernet FPGA, além de reduzir o tempo de desenvolvimento, a AdvancedIO foi pioneira no uso de estruturas FPGA para comunicações Ethernet 10-Gigabit (10GE). O conjunto de ferramentas do framework de desenvolvimento AdvancedIO expressXG fornece a infra-estrutura necessária para garantir a rápida implantação de serviços financeiros e permite a portabilidade perfeita para a última geração de placas FPGA. Sistemas de negociação reduzem latência de comércio Publicado em 16 de setembro de 2010 A latência de resposta comercial reduzida para menos de dois microssegundos ao combinar o NASDAQ ITCH e o OUCH em uma única FPGA David Buechner, vice-presidente de desenvolvimento de negócios da AdvancedIO Systems Inc. , Vice-presidente, Impulse: ferramentas de impulso estão em uso em grandes empresas financeiras e hedge funds, onde eles têm equipado matemáticos e desenvolvedores de algoritmo para melhorar drasticamente a latência. In-FPGAtrade Trading Systems (infpga) anunciaram um design de referência de negociação automatizada acelerada por hardware que executa a manipulação de alimentação de ITCH da NASDAQ e a entrada de pedido OUCH de saída em execução em Ethernet de 10Gb, com menos de dois microssegundos de latência. O sistema será exibido na feira de 2010 High Performance Computing Financial Markets, estande 424, em Nova York, em 20 de setembro de 2010. O sistema in-FPGA visa permitir que os operadores 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 programa poderão ver o hardware real utilizado para a descodificação de dados de mercado e entrada de pedidos de saída, com todas as funcionalidades realizadas inteiramente em lógica de FPGA (Field Programmable Gate Array) de alto desempenho. O sistema resultante é dito alcançar a latência secundária de 2 microsegundos hoje, com melhorias esperadas no throughput que está sendo feito ao longo de 2010. Estas plataformas FPGA-baseadas da referência apontar operar-se em diversas vezes a velocidade de um microprocessador maior baseou server. Seu tudo sobre a latência negociando, disse Cameron Elliott, desenhador principal do sistema dentro-FPGA. A negociação baseada em FPGA pode responder a dados de mercado de uma ordem de magnitude mais rápida do que os servidores baseados em Linux e 2-5 vezes mais rápido do que sistemas híbridos de CPU / FPGA. 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 excitante para os comerciantes é que eles podem implementar sua lógica de trigger 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 . Ferramentas de impulso estão em uso em grandes empresas financeiras e hedge funds onde eles têm equipado matemáticos e desenvolvedores de algoritmo para melhorar drasticamente a latência. In-FPGAs sistema de negociação e aplicação de referência permite desenvolvedores de software para usar a aceleração de hardware para 10Gb Ethernet processamento, disse David Buechner, vice-presidente da Impulse. Isso oferece uma tecnologia disruptiva para as empresas comerciais que querem ser o primeiro na fila com seus comércios. Itens Populares Tullett Prebon ICAP Comitê Executivo Global nomeações Washington DC abre centro de inovação blockchain Lembrete - Finra Tick Tamanho Piloto começa hoje Corvil apresenta análise de máquina-tempo Grupo IG para adquirir DailyFX GFT nomeia David Collins como chefe de serviços financeiros Copyright copy Automated Trader Ltd 2017 - Estratégias de Conformidade Tecnologia PGAs - Perfeição Paralela FPGAs (Field Programmable Gate Arrays) podem não ser uma nova tecnologia, mas como a corrida de sincronização de dados em negociação automatizada / algorítmica continua a intensificar, poderiam ser uma idéia cujo tempo finalmente chegou AT fala com Alistair MacArthur, Engenheiro sênior de pesquisa da Celoxica, que discute a tecnologia atual de FPGA e descreve seu potencial para tarefas como analisar algoritmos de feeds de notícias. Quão velho são FPGAs como um conceito de tecnologia Mais de vinte anos. O conceito original foi desenvolvido por dois dos fundadores de Xilinx - Ross Freeman e Bernie Vonderschmitt - por volta de 1984. A idéia de Ross Freemans era que, em vez de usar um processador genérico e um software de escrita para rodar sobre ele, Tarefas diretamente programando-os. Com efeito, os cálculos dos programas seriam implementados em hardware e não em software. O nome genérico para este tipo de chip é um Programmable Logic Device (PLD), com FPGAs sendo um subconjunto desses. Então, o que faz um chip FPGA realmente consiste em É essencialmente uma forma complexa de memória de acesso aleatório estático (SRAM - um tipo muito rápido de memória comumente usado para o cache em chip em processadores de computador convencionais). Embora os FPGAs modernos possam conter um número de componentes adicionais, os três componentes principais são registos, geradores de função (também conhecidos como tabelas de consulta ou LUTS) eo relógio FPGA. Cada gerador de função contém de um conjunto de portas lógicas1. É tipicamente disposta de modo que tem quatro entradas, uma saída e uma porta de configuração através da qual as portas lógicas são configuradas. O conceito básico de operação é que cada gerador de função pode ser configurado para produzir uma saída particular para um dado conjunto de entradas. Isso pode ser pensado como uma tabela de verdade. Por exemplo, um gerador de função de 4 entradas pode executar uma correspondência binária de 2 bits. Os registos são essencialmente células de armazenamento individuais cada capaz de armazenar um bit (ou um 0 ou um 1) de dados. No entanto, assim como as portas lógicas em um gerador de função podem ser configuradas por um programador, os registradores podem ser agregados de forma semelhante em seções maiores de memória, como 8, 32 ou 64 bits. O relógio FPGA controla o número de vezes por segundo que cada gerador de função e registro pode receber entrada e gerar saída. Os FPGAs de produção mais rápida atualmente funcionam entre 200 e 400MHz, portanto, cada gerador de função e registrador pode, portanto, processar teoricamente entradas / saídas entre 200m e 400m vezes por segundo. Xilinx Virtex 5 FPGA Chip Família Muitos dos processadores de computador padrão têm relógios muito mais rápido do que isso, então onde seria a vantagem de desempenho em usar um FPGA A diferença importante é que uma única CPU convencional só pode processar uma única instrução por ciclo de relógio. Em contraste, um FPGA pode ser configurado como vários processadores virtuais capazes de funcionar em paralelo. Alguns FPGAs grandes podem conter milhões de geradores de função e registros, portanto, a configuração para uma tarefa de processamento simples, como combinar uma seqüência de texto curta, pode resultar em um FPGA render dezenas de milhares de processadores virtuais. Uma configuração como esta, portanto, ultrapassará rapidamente uma desvantagem de velocidade de relógio múltipla de dez ou quinze. O outro ponto a ter em mente é que FPGAs pode ignorar uma série de latência de outro sistema. Com um processador convencional você pode estar recebendo o feed de notícias que você está processando via um soquete TCP para um chip Ethernet, mas que então tem que passar por uma camada MAC, então um chip North Bridge, então para o barramento principal do processador, então uma interrupção Tem de ser sinalizado, em seguida, todos os dados tem de ser transferido para o espaço do usuário. Todas essas coisas podem, naturalmente, ser feito muito rapidamente, mas há, no entanto, um monte de passos a percorrer que não se aplicam a FPGAs. Por que não É isso uma função de como FPGAs estão conectados a um sistema que tem muito a ver com isso, sim. Em um ambiente de produção que engloba a atividade de negociação algorítmica / automatizada, as FPGAs são mais prováveis ​​de serem encontradas em placas PCI ou PCI-X, sendo as placas equipadas com FPGAs de Xilinx e Altera. Uma inovação mais recente foi colocar o FPGA em um módulo co-processador que se conecta diretamente na placa-mãe do computador. (Estes módulos são produzidos por empresas como o DRC Computer e só podem ser usados ​​em placas-mãe AMD multiprocessador que suportam a tecnologia HyperTransport). Se um FPGA estiver montado em uma placa PCI, o principal gargalo será a velocidade da conexão PCI. No entanto, o advento do padrão PCI-X - com taxas de transferência de até 4,26 GB / s (PCI-X 533) - está fazendo isso muito menos de um problema. Além disso, FPGAs que são montados em uma placa PCI também podem ser alimentados dados diretamente de uma tomada Ethernet montada no backplane do cartão, ignorando completamente o barramento PCI. Os FPGAs montados em co-processadores têm um canal de acesso ainda mais rápido - com a versão 3.0 da especificação HyperTransport, tornando possível taxas de transferência de até 41,6 GB / seg. Uma configuração bastante típica aqui seria usar uma placa-mãe AMD de processador duplo, com um processador convencional de CPU montado em um soquete e um coprocessador FPGA montado no outro. Uma vantagem adicional desta abordagem é que o co-processador FPGA tem acesso directo à memória principal do sistema. Portanto, ao testar algoritmos baseados em notícias, grandes bancos de dados de notícias e quaisquer termos de pesquisa podem ser carregados diretamente na memória principal e acessados ​​extremamente rapidamente a partir daí pelo co-processador FPGA. O que isso significa em termos práticos Bem, como vimos com desenvolvimentos como o Dow Jones Newswires anúncio de suas Notícias e Arquivos para Aplicações Algorítmicas, processamento de texto está ganhando rapidamente importância em negociação algorítmica. Embora ainda não tenhamos chegado ao ponto em que os modelos negociarão apenas os fios de notícias, há, no entanto, muito trabalho a ser feito na incorporação de fluxo de notícias em modelos algorítmicos. O paralelismo de FPGAs é perfeitamente adequado para a análise de texto de alta velocidade necessária para esta abordagem, onde você pode estar selecionando múltiplas feeds de notícias para um grande número de combinações de palavras-chave relacionadas talvez a milhares de títulos. Enfrentar essa escala de tarefas de computação usando processadores convencionais de computador seria relativamente ineficiente e quase certamente exigiria múltiplos processadores se fosse para ser feito em tempo hábil. Embora a disponibilidade de processadores dual core obviamente ajude, ainda estaria olhando para um investimento considerável em hardware para alcançar um nível semelhante de execução paralela - e uma factura de electricidade maior. Clustering ou grid tecnologia poderia ser usado para acessar a capacidade ociosa, mas isso, então, levanta questões de sobrecarga de banda e sincronização de comunicações. Além disso, um servidor central adicional seria necessário para carregar o equilíbrio e distribuir os trabalhos entre os outros processadores. Em última análise, se a avaliação de expressões regulares múltiplas 2 (como no processamento de notícias para negociação algorítmica), usando processadores convencionais é semelhante a usar um martelo bastante ineficiente martelo para quebrar uma porca. . Um FPGA pode ser configurado como vários processadores virtuais capazes de funcionar em paralelo. Como as tecnologias se comparam à medida que a complexidade das expressões sendo avaliadas aumenta Por exemplo, pesquisar um feed de notícias para expressões regulares múltiplas resulta em um impacto de desempenho significativo para FPGAs ou CPUs de propósito geral Há uma diferença muito significativa. À medida que aumenta o número de expressões regulares, o desempenho convencional da CPU deteriora-se sensivelmente em relação ao de uma FPGA. Embora os números precisos, obviamente, dependem de circunstâncias individuais, é uma aproximação razoável dizer que pelo tempo que você está avaliando apenas cinqüenta expressões regulares uma CPU convencional terá um tempo de execução mais de 100 vezes a de um FPGA comparável. Altera Stratix II GX chip FPGA Então, por que FPGAs alcançou tão pouca penetração nos mercados financeiros até à data É só recentemente que FPGAs se tornaram uma alternativa eficiente e acessível para a CPU bruta. Com o advento do PCI-X e do HyperTransport, o gargalo das comunicações foi superado e com ferramentas de programação de software baseadas em C para maturação de FPGAs, os desenvolvedores podem programar hardware em um ambiente familiar baseado em C. Além disso, eu acho que as pessoas tendem a ficar com a tecnologia de computação convencional por uma série de razões: uma das principais razões é o conforto - as pessoas naturalmente preferem ficar com a tecnologia que já conhecem. É percebido como menos arriscado, tanto para a organização e para eles pessoalmente em termos de carreira. Isso se aplica a ambos os negócios e funções de tecnologia, de modo que um gerente de linha de negócios tentando evangelizar FPGAs é susceptível de enfrentar a resistência de um departamento de TI que podem não entender a tecnologia e, em certo sentido se sentem ameaçados por ele. (Essa é uma razão FPGAs ainda tendem a ser visto como uma tecnologia disruptiva.) O outro problema para muitas pessoas que podem estar preparados para usar FPGAs é que muitas das empresas que prestam serviços no espaço são relativamente novos e / ou pequeno. Eles são, portanto, vistos como um risco maior como fornecedores - especialmente quando comparados com nomes industriais há muito estabelecidos que vendem tecnologia convencional. Existem participantes significativos no mercado usando FPGAs Sim - alguns participantes estão se engajando conosco para alavancar as capacidades de processamento paralelo de FPGAs para processos iterativos que podem se beneficiar do paralelismo. Por exemplo, estamos lidando com um número de grandes bancos de investimento que estão usando FPGAs para simulações Monte Carlo como parte de seus processos de gerenciamento de risco. Os ganhos de desempenho que são possíveis ao usar FPGAs para este tipo de problema podem ser substanciais. Por exemplo, acabamos de concluir uma implementação de protótipo de um modelo de preço de opções para um banco de investimento que é executado 400 vezes mais rápido em um FPGA do que em processadores convencionais - além de consumir menos menos energia. Figura 1 Como um FPGA realizaria uma pesquisa de texto como parte de um modelo algorítmico Como mencionei anteriormente, cada par de entradas para um gerador de função FPGA é capaz de comparar dois bits. Os códigos ASCII para letras do alfabeto consistem em oito bits - por exemplo, a letra maiúscula A é representada em binário como 01000001. Portanto, como um exemplo extremamente simples, se você quisesse verificar um fluxo de notícias para a presença da letra A você Precisaria usar quatro geradores de função (oito pares de entradas) conectados a um outro gerador de função única. Você também precisaria de dezesseis registros de um bit para armazenar (armazenar curto prazo) os dados de entrada dos feeds de notícias eo valor de pesquisa desejado A que você tinha entrada. (Oito bits para o código ASCII para cada letra recebida do feed de notícias e oito para o código ASCII para a cadeia de pesquisa A). A Figura 1 é uma ilustração esquemática desta, com os registos mostrados em rosa, os primeiros geradores de função de fase em azul e o segundo gerador de função de fase em verde. As setas e linhas pretas representam o caminho de entrada para a seqüência de pesquisa A e os números em caixas à esquerda dos registradores representam (de cima para baixo) o código ASCII binário para A (01000001). O código binário ASCII para cada bit de cada caractere no feed de notícias seria aplicado na mesma ordem correspondente às setas / linhas vermelhas. Se, tal como ilustrado na Figura 1, ambas estas entradas vermelhas para um gerador de função correspondem às entradas pretas correspondentes (os bits da cadeia de procura), então o gerador emitirá um 1 (a ligação de saída é a linha azul no RHS do gerador) . Esta saída é alimentada ao segundo gerador de função de fase juntamente com a saída de todos os outros geradores de primeira fase. Se todas as quatro entradas para o segundo gerador de fase são 1, então ele também emitirá um 1 (linha verde em RHS) indicando que a letra A foi encontrada no fluxo de texto. Este é, obviamente, um exemplo muito trivial, mas o conceito básico pode ser ampliado para acomodar pesquisas muito mais complexas envolvendo várias palavras que devem estar dentro de uma certa distância uma da outra. Se esta condição fosse satisfeita, as informações poderiam então ser passadas para o modelo algorítmico para desencadear uma determinada ação, como a suspensão da negociação ou o redimensionamento das fatias de posição. O paralelismo de FPGAs é perfeitamente adequado para a análise de texto de alta velocidade necessária em situações onde você está selecionando múltiplas notícias feeds para um grande número de combinações de palavras-chave relacionadas talvez com milhares de títulos. Você já delineou algumas das razões para a lenta FPGA take-up nos mercados financeiros, mas isso ainda soa muito bom para ser verdade. Existe um custo significativo obstáculo para FPGAs O hardware, especialmente quando visto em termos de seu custo de processamento por dólar, isnt particularmente caro. No nível de entrada, as placas externas FPGA conectadas a USB começam em cerca de 1000, enquanto uma placa FPGA de alto desempenho PCI-X pode custar 10 mil. Obviamente, em ambos os casos, você ainda terá de fator no custo de um computador relativamente humilde especificado para o qual a placa FPGA seria conectado. No entanto, quando você considera que razoavelmente especificado nome da marca quatro processadores Opteron servidores começam em cerca de 9000, os custos relativos ainda favorecem o FPGA. Até mesmo um FPGA de gama média, em torno de 5000, exibirá um desempenho substancialmente maior no tipo de processamento de texto que estamos discutindo do que um servidor convencional de quatro processadores. A alternativa do coprocessador também é competitiva - por exemplo, os módulos do DRC Computers começam em cerca de 4500, mas isso provavelmente cairá ao longo do tempo (à medida que os volumes aumentarem) para mais próximo de 3000. Celoxica HTX FPGA PCI Board O ambiente de design de software pode ser um obstáculo de custo. Os toolkits de programação para FPGAs geralmente começam na faixa de 40-50.000. Embora isso soe muito, eles são normalmente comprados por empresas de eletrônicos, como fabricantes de telefones celulares, que podem amortizar esse custo em potencialmente centenas de milhares de unidades. Da mesma forma, para um corretor desenvolver vários algoritmos para seus próprios ou seus clientes uso isso pode não ser uma grande barreira, mas para entidades como pequenos hedge funds seria. A vantagem hoje é que as ferramentas de projeto baseadas em C reduziram o tempo de design de hardware e essas eficiências equivalem diretamente a economias de meses-homem de esforço e economia de custos de projeto. Até à data, ninguém parece estar a desenvolver barato fora da prateleira FPGA ferramentas para texto seqüência de pesquisa e outras tarefas relacionadas ao desenvolvimento de algoritmos e de negociação. A maioria dos esforços neste espaço ainda estão focados na aceleração do software financeiro relacionado aos modelos de risco ou opção, embora isso deva mudar à medida que as oportunidades oferecidas pelas FPGAs na negociação automatizada / algorítmica se tornam mais amplamente apreciadas. Itens Populares Tullett Prebon ICAP Comitê Executivo Global nomeações Washington DC abre centro de inovação blockchain Lembrete - Finra Tick Tamanho Piloto começa hoje Corvil apresenta análise de máquina-tempo Grupo IG para adquirir DailyFX GFT nomeia David Collins como chefe de serviços financeiros Copyright copy Automated Trader Ltd 2017 - Estratégias Conformidade TecnologiaEu li sobre diferentes implementações de sistemas HFT em FPGAs. A minha pergunta é que parte dos sistemas HFT são implementados principalmente em FPGAs hoje em dia São FPGAs ainda muito popular É apenas o manipulador de feed implementado no FPGAs Porque alguns desses sistemas descritos acima só têm um manipulador de feed implementado no FPGA, porque a estratégia muda Demais, ou é muito difícil de implementar em FPGAs. Outros afirmam que eles também implementaram estratégias de negociação em FPGAs ou usando NICs de alto desempenho em vez de FPGAs para construir sistemas HFT. Ive ler sobre abordagens diferentes, mas acho difícil comparar como a maioria dos resultados são testados em diferentes conjuntos de entrada. Perguntou Mar 9 14 à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ê começa um projeto que você não pode mudar depois. ASICs fazem sentido para tarefas predefinidas, como Bitcoin mineração, conhecidos algoritmos de processamento de dados, etc Por outro lado, temos ordinárias CPUs (bem como co-processador CPUs e GPUs) que são de uso geral, mas processar 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 10 vezes mais lento do que o hardware real, mas ainda assim mais performant para operações concorrentes do que CPUs desde que você é capaz de utilizar o dado para espalhar sua lógica em conformidade. Alguns usos de FPGAs são: transcodificação de vídeo (por exemplo, decodificaçã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) Aplicações como, por exemplo, Em pesquisa aeroespacial ou científica O problema com FPGAs para usos quant é que não é tão bom para os cálculos de ponto flutuante, particularmente desde CPUs comuns já estão otimizados para que com coisas como SIMD. No entanto, para qualquer ponto fixo ou estruturas de dados de tamanho fixo, design FPGA permite configurar o dispositivo para fazer um monte de processamento ao mesmo tempo. Algumas coisas feitas na negociação estão usando FPGA para manipuladores de alimentação (analisando diretamente a partir do fluxo de rede), bem como a construção de certas partes da estrutura de negociação (por exemplo, livros de encomendas) em hardware, a fim de ser capaz de lidar com a rápida mudança de estrutura de dados sem Carregamento da CPU. As FPGAs visam principalmente a preocupação de processar rapidamente os dados sem pagar os custos de propagação. Isto é particularmente em contraste com dispositivos como o GPGPU (ou qualquer cartão PCI-habitação, como Xeon Phi) que pagam penalidades de desempenho para obter dados para / a partir 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 repetidas vezes em todo o silício, com switches configuráveis ​​para conectar os blocos de lógica juntos. Isso torna FPGA muito bom - e rápido - 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 trabalhando em paralelo ao mesmo tempo, em apenas um FPGA. CPUs, por outro lado são baseadas em torno da ALU, que carrega instruções, carrega dados, opera sobre os dados, talvez armazena os resultados e, em seguida, faz tudo de novo. Os CPUs são então muito bons - e rápidos - em lidar com problemas que estão mudando continuamente - tanto em tamanho e em escopo como em alternar entre tarefas diferentes. Todays CPU ou núcleo terá dezenas de centenas de ALUs com pipelines paralelos para dados e instruções, o que os torna muito rápido 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 condensar vários feeds de dados em menos de micro-segundo, fio a fio ou disparar uma compra, venda ou cancelamento pré-calculada Em um preço que combine um teste padrão particular. Os CPUs são mais rápidos em problemas mais complexos que requerem menos paralelismo, como o cálculo da cesta de compras, vendas e anulações necessárias para manter uma carteira ajustada ao risco ou integrando uma série de fontes de preços e notícias de idade e qualidade variadas em indicadores de negociação usados ​​por Comerciantes e administração para decidir que ajustes farão ao sistema negociando. Onde FPGAs são usados ​​em HFT depende muito da arquitetura de determinada loja. Eles são os mais utilizados executando tarefas simples, repetitivas, amplas e executá-las rapidamente. CPUs são uma faca suíça que pode fazer mais nada, especialmente quando os requisitos estão mudando e as dimensões do problema não são totalmente compreendidas no início. Respondeu Mar 11 14 at 17:10 Sua pergunta realmente não faz muito sentido. É como perguntar quanto da fiação em infra-estrutura de negociação usa fibra óptica e quanto dela usa cobre. A melhor resposta que podemos dar a você é que um FPGA não é uma bala mágica. Esta é uma interpretação incorreta do livro branco de Ciscos. Há muito pouca sobreposição entre os casos de uso de troca de tecido e os de um FPGA. Que parte dos sistemas HFT são na sua maioria implementados em FPGAs hoje em dia Atualmente, FPGAs são freqüentemente usados ​​em nossas impressoras e decodificadores de TV. Eu quero destacar o bloco de processamento de sinal digital (DSP) com ALUs. Os FPGAs de hoje têm centenas de blocos de DSP programáveis ​​que possuem milhares. Agora, de repente, você tem milhares de pequenos processadores à sua disposição, todos capazes de executar cálculos em paralelo. Isso é muito superior ao paralelismo fornecido pelo Xeon Phi ou GPUs. De fato, se você está fazendo modelos de preço de opções ou modelagem de risco estocástico em FPGA, você pode obter mais do que 100 vezes mais desempenho em comparação com as últimas GPUs e ainda mais em relação às últimas CPUs. Junto com os blocos de DSP, o outro fator principal neste ganho de desempenho é o cache de memória. FPGA tem built-in RAM distribuída que é extremamente rápido, permitindo que a largura de banda de 100TB / s para ser alcançado no nível do datapath. Usando hoje FPGAs para estratégias de algo dá grande e massivamente concorrente recurso de computação que é capaz de dar 100 a 1000 vezes aumentar o desempenho em comparação com GPUs ou CPUs. A principal ressalva é que você teria que se tornar proficiente em escrever em Verilog ou VHDL :) Sanjay Shah CTO Nanospeed respondeu Aug 5 14 at 18:05 Uma variedade de processadores poderosos, muitos núcleos estão começando a fazer o seu caminho para o hardware Espaço de aceleração que anteriormente era completamente propriedade de FPGAs. Empresas como Tilera, Adapteva e Logix Coherent fornecem estes processadores aqui nos EUA, com Enyx da França também fazendo incursões. A verdadeira medida da eficácia desses processadores massivamente paralelos reside na maturidade de suas ferramentas de software. Isso é onde o usuário em perspectiva deve concentrar sua atenção. Ninguém quer programar ou depurar dezenas ou centenas de núcleos usando técnicas manuais. Naturalmente, é evidente que a largura de banda de I / O é tão importante. Na minha experiência pessoal neste espaço estou vendo a adoção do cliente de processadores Logix Coherent como co-processadores ou aceleradores de hardware para C-linguagem algo aceleração. Ao desfrutar do ciclo de design rápido de um ambiente baseado em C, os programadores de algo podem ajustar o código para o conteúdo dos seus corações e não se preocupar com codificação de HDL caro e demorado para FPGAs. O particionamento ideal é fazer com que os FPGAs façam o que melhor façam - operações repetitivas fixas - e que os processadores de muitos núcleos façam o que melhor façam: acelerar a produtividade dos desenvolvedores de algo ea velocidade de execução. John Irza, Gerente de Desenvolvimento de Negócios, Coherent Logix, Inc. respondeu ago 6 14 at 0:42 Quase todos os HFT lojas usam arquitetura FPGA. Estes dispositivos precisam ser substituídos freqüentemente como rapidamente são ultrapassados ​​pelas últimas melhorias em velocidade, oleodutos, paralelismo, etc A menos que você está pronto para investir 2M por ano, descobrir outra estratégia. Lote de caras fazendo movimentos de preço diário com caneta e papel estão fazendo bilhões em Omaha, NB. Respondeu Jul 28 at 10:31 Sua resposta 2017 Stack Exchange, Inc

No comments:

Post a Comment