BR112020020119A2 - sistema e método para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos - Google Patents

sistema e método para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos Download PDF

Info

Publication number
BR112020020119A2
BR112020020119A2 BR112020020119-7A BR112020020119A BR112020020119A2 BR 112020020119 A2 BR112020020119 A2 BR 112020020119A2 BR 112020020119 A BR112020020119 A BR 112020020119A BR 112020020119 A2 BR112020020119 A2 BR 112020020119A2
Authority
BR
Brazil
Prior art keywords
network
token
node
processing
orchestrator
Prior art date
Application number
BR112020020119-7A
Other languages
English (en)
Inventor
Guilherme Spina
Leonardo De Moura Rocha Lima
Original Assignee
V2Com S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by V2Com S.A. filed Critical V2Com S.A.
Publication of BR112020020119A2 publication Critical patent/BR112020020119A2/pt

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

Um método para processamento distribuído inclui receber uma solicitação de processamento em um orquestrador, e identificar uma ou mais tarefas na solicitação de processamento. O método fiddler inclui as operações de distribuir a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós, receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós e realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens. Adicionalmente, o método inclui atualizar um valor de uma métrica de progresso para o nó não na rede de tokens, realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado, e quando o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.

Description

SISTEMA E MÉTODO PARA GERENCIAMENTO DE RECURSOS E ALOCAÇÃO DE RECURSOS EM UMA REDE DE AUTO-OTIMIZAÇÃO DE NÓS DE PROCESSAMENTO HETEROGÊNEOS REFERÊNCIA CRUZADA PARA PEDIDO RELACIONADO E REIVINDICAÇÃO DE PRIORIDADE
[001]Este pedido reivindica o benefício do pedido provisório US 62/650.659 depositado em 30 de março de 2018. O pedido provisório está incorporado a este documento pela referência tal como se reproduzido integralmente a seguir.
CAMPO TÉCNICO
[002]Esta revelação de uma maneira geral diz respeito à computação distribuída. Mais especificamente, esta revelação diz respeito a sistemas e métodos para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos.
ANTECEDENTES
[003]Avanços tecnológicos (tais como o desenvolvimento de rádios de dados de pacotes pequenos de potência mais baixa), demanda de consumidor (por exemplo, demanda difundida para telefones inteligentes) e mudanças de padrão em como pessoas compreendem computadores (por exemplo, o deslocamento de uma “Internet de computadores” para uma “Internet das coisas (IoT)”) têm produzido um crescimento geométrico no número e tipo de dispositivos que podem ser considerados como “computadores em rede”. Enquanto anteriormente o termo “computadores em rede” abrangia uma faixa estreita de dispositivos (por exemplo, laptops, computadores de mesa e servidores) operando ao usar uma faixa limitada de protocolos de comunicação, o termo agora abrange uma faixa ampla de plataformas de computação heterogêneas conectadas através de uma variedade de protocolos de rede. Computadores em rede agora incluem, sem limitação, controladores de IoT de residência (por exemplo, o Amazon Eco), dispositivos de porta de comunicação (por exemplo, os dispositivos Neuron e Dendrion fabricados pela V2COM, Inc.), telefones inteligentes, assim como computador de mesa, laptop e computadores servidores.
[004]Entretanto, muito desta potência de computação em rede recém-criada está ligada a dispositivos de funções específicas com grandes quantidades de tempo de paralisação entre ciclos de uso (por exemplo, sistemas de automação de residências podem ter recursos de processamento e de memória significativos para suportar operações tais como reconhecimento de voz ou facial, os quais não são usados durante o dia, quando as residências tipicamente estão vazias). Além de experimentar grandes períodos de tempo de paralisação entre ciclos de uso, muito desta potência de computação em rede recém-criada é dividido e conectado somente a um número pequeno de dispositivos dentro de uma rede pequena e a um servidor do fornecedor. Por exemplo, um controlador de automação de residência provavelmente só pode ser conectado comunicativamente a dispositivos de IoT dentro de uma residência, a um ou dois terminais de usuário reconhecidos (por exemplo, telefones inteligentes, tablets ou laptops) e a um servidor do fabricante (por exemplo, um servidor hospedado por Amazon ou Google).
[005]A proliferação descrita acima de computadores em rede apresenta uma abundância de potência de computação não usada para suportar computação distribuída em uma escala inimaginável anteriormente. Entretanto, aproveitar esta abundância de potência computacional latente apresenta diversos desafios técnicos, tais como alcançar alocação eficiente de recursos de processamento distribuídos heterogêneos, como difundir integrado de modo ideal recursos de computação como nós de uma rede distribuída e como regular acesso e manter a segurança de dados privados em dispositivos que são nós da rede.
[006]Modalidades tais como descritas neste documento são propostas para fornecer sistemas, métodos e estruturas de dados pelos quais computadores em rede heterogêneos difusos podem ser juntados como uma federação de nós seguros de uma rede de processamento de auto-otimização.
SUMÁRIO
[007]Esta revelação fornece sistemas e métodos para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos.
[008]Em uma primeira modalidade, um método para processamento distribuído inclui as operações de receber uma solicitação de processamento em um orquestrador, o orquestrador compreendendo um processador, uma interface de rede e uma memória, o orquestrador conectado por meio da interface de rede a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens, e identificar uma ou mais tarefas na solicitação de processamento. O método inclui adicionalmente as operações de distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós, receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós e realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens. Adicionalmente, o método inclui atualizar um valor de uma métrica de progresso para o nó não na rede de tokens em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado e, em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.
[009]Em uma segunda modalidade, um orquestrador inclui um processador, uma interface de rede conectada a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens; e uma memória contendo instruções. Quando as instruções na memória são executadas pelo processador, elas induzem o orquestrador para receber uma solicitação de processamento, identificar uma ou mais tarefas na solicitação de processamento, e distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós. Adicionalmente, as instruções, quando executadas pelo processador, induzem o orquestrador para receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós, realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens e, em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, atualizar um valor de uma métrica de progresso para o nó não na rede de tokens. Adicionalmente, as instruções em memória, quando executadas pelo processador, induzem o orquestrador para realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado e, em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.
[010]Em uma terceira modalidade, um meio não transitório legível por computador contém código de programa que, quando executado por um processador, induz um orquestrador para receber uma solicitação de processamento por meio de uma interface de rede do orquestrador conectado a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens, identificar uma ou mais tarefas na solicitação de processamento e distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós. Adicionalmente, o meio não transitório legível por computador contém código de programa que, quando executado pelo processador, induz o orquestrador para receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós, realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens, em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens,
atualizar um valor de uma métrica de progresso para o nó não na rede de tokens, e realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado. Adicionalmente, o meio não transitório legível por computador contém código de programa que, quando executado pelo processador, induz o orquestrador para adicionar o nó à rede de tokens em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado.
[011]Outros recursos técnicos podem ficar prontamente aparentes para os versados na técnica a partir das figuras, descrições e reivindicações seguintes.
[012]Antes de apresentar a DESCRIÇÃO DETALHADA a seguir, pode ser vantajoso expor definições de certas palavras e frases usadas por todo este documento de patente. O termo “acoplam” e seus derivativos se referem a qualquer comunicação direta ou indireta entre dois ou mais elementos, se esses elementos estão ou não em contato físico uns com os outros. Os termos “transmitem”, “recebem” e “comunicam”, assim como derivativos dos mesmos, abrangem comunicação tanto direta quanto indireta. Os termos “incluem” e “compreendem”, assim como derivativos dos mesmos, significam inclusão sem limitação. O termo “ou” é inclusivo, significando e/ou. A expressão “associado com”, assim como derivativos da mesma, significa incluir, estar incluído em, interligar com, contêm, estar contido dentro de, se conectam a ou com, acoplam a ou com, ser comunicável com, cooperam com, intercalam, justapõem, estar perto de, ser ligado a ou com, têm, têm uma propriedade de, têm uma relação para ou com ou coisa parecida. O termo
“controlador” significa qualquer dispositivo, sistema ou parte do mesmo que controla pelo menos uma operação. Um controlador como este pode ser implementado em hardware ou em uma combinação de hardware e software e/ou firmware. A funcionalidade associada com qualquer controlador particular pode ser centralizada ou distribuída, se localmente ou remotamente. A expressão “pelo menos um de”, quando usada com uma lista de itens, significa que combinações diferentes de um ou mais dos itens listados podem ser usadas, e somente um item na lista pode ser necessário. Por exemplo, “pelo menos um de: A, B e C” inclui qualquer uma das seguintes combinações: A, B, C, A e B, A e C, B e C, e A e B e C.
[013]Além disso, várias funções descritas a seguir podem ser implementadas ou suportadas por um ou mais programas de computador, cada um dos quais é formado de código de programa legível por computador e incorporado em um meio legível por computador. Os termos “aplicação” e “programa” se referem a um ou mais programas de computador, componentes de software, conjuntos de instruções, procedimentos, funções, objetos, classes, instâncias, dados relacionados, ou uma parte adaptada dos mesmos para implementação em um código de programa legível por computador adequado. A expressão “código de programa legível por computador” inclui qualquer tipo de código de computador, incluindo código fonte, código de objeto e código executável. A expressão “meio legível por computador” inclui qualquer tipo de meio capaz de ser acessado por um computador, tal como memória somente de leitura (ROM), memória de acesso aleatório (RAM), uma unidade de disco rígido, um disco compacto (CD), um disco de vídeo digital (DVD) ou qualquer outro tipo de memória. Um meio “não transitório” legível por computador exclui enlaces de comunicação com fio, sem fio, óticos, ou outros enlaces de comunicação que transportam sinais elétricos transitórios ou outros sinais. Um meio não transitório legível por computador inclui meio onde dados podem ser armazenados permanentemente e meio onde dados podem ser armazenados e podem receber dados gravados em cima mais tarde, tais como um disco ótico regravável ou um dispositivo de memória apagável.
[014]Definições para outras certas palavras e frases são fornecidas por todo este documento de patente. As pessoas de conhecimento comum na técnica devem entender que em muitos casos, se não na maioria, tais definições se aplicam para usos anteriores assim como futuros de tais palavras e frases definidas.
DESCRIÇÃO RESUMIDA DOS DESENHOS
[015]Para um entendimento mais completo desta revelação e de suas vantagens, referência agora é feita para a descrição a seguir, considerada junto com os desenhos anexos, nos quais: A Figura 1 ilustra um exemplo de um contexto de rede incluindo um orquestrador e rede de tokens de acordo com certas modalidades desta revelação; A Figura 2 ilustra um exemplo de um orquestrador de acordo com certas modalidades desta revelação; A Figura 3 ilustra um exemplo de um nó de processamento de acordo com certas modalidades desta revelação; A Figura 4 ilustra operações de um método de acordo com certas modalidades desta revelação; e
[016]A Figura 5 ilustra um exemplo de uma estrutura de dados para rastrear filiação em uma rede de tokens de acordo com certas modalidades desta revelação.
DESCRIÇÃO DETALHADA
[017]As Figuras 1 a 5, discutidas a seguir, e as várias modalidades usadas para descrever os princípios desta revelação neste documento de patente são somente a título de ilustração e não devem ser interpretadas em nenhum modo para limitar o escopo da revelação.
[018]A Figura 1 ilustra um exemplo de um contexto de rede 100 incluindo um orquestrador e uma rede de tokens de acordo com esta revelação.
[019]De acordo com certas modalidades, o contexto de rede 100 inclui um orquestrador 105, uma camada de aplicação 110, uma ou mais redes 115, um ou mais nós de processamento heterogêneos 120a-c que pertencem a uma rede de tokens, e um ou mais nós de processamento heterogêneos 125a-b não pertencendo à rede de tokens.
[020]No exemplo não limitativo da Figura 1, o orquestrador 105 é um servidor de gerenciamento, tal como um servidor Hewlett-Packard Proliant™ incorporado em um único gabinete de servidor. De acordo com certas modalidades, o orquestrador 105 inclui código de programa que, quando executado por um ou mais núcleos de processadores do orquestrador 105, induz o mesmo para receber uma solicitação de processamento por meio de uma interface de rede (por exemplo, a interface de rede 225 na Figura 2) para ser processada por um ou mais nós de uma rede de processamento distribuído (por exemplo, os nós de rede de tokens 120a-c e/ou os nós não de rede de tokens 125a-b). O código de programa, quando executado pelo processador, induz adicionalmente o orquestrador para identificar uma ou mais tarefas na solicitação de processamento e distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós. Adicionalmente, o código de programa, quando executado pelo processador, induz o orquestrador para receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós, realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens, em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, atualizar um valor de uma métrica de progresso para o nó não na rede de tokens, e realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado. Adicionalmente, quando executado pelo processador, o código de programa induz o orquestrador para adicionar o nó à rede de tokens em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado.
[021]Múltiplas arquiteturas para implementar o orquestrador 105 são possíveis e estão no escopo desta revelação. De acordo com algumas modalidades, o orquestrador 105 é um único servidor, e em outras modalidades, o orquestrador 105 pode compreender múltiplos servidores físicos. Em algumas modalidades, o orquestrador 105 é implementado em uma ou mais máquinas virtuais (VMs).
De acordo ainda com outras modalidades, o orquestrador 105 é implementado na nuvem, através de uma variedade de máquinas. De acordo ainda com modalidades adicionais, o orquestrador 105 é implementado em um centro de comando, tal como descrito no pedido provisório US 62/637.207 depositado em 1 de março de 2018.
[022]De acordo com várias modalidades, o orquestrador 105 recebe solicitações de processamento, ou trabalhos para serem processados pelas plataformas de computação em rede compreendendo nós (por exemplo, os nós 120a-c e os nós 125a-b) de uma ou mais redes de nós de processamento heterogêneos. Tal como será discutido com mais detalhes neste documento, em algumas modalidades, o orquestrador 105 divide a solicitação de processamento em tarefas constituintes para serem distribuídas para nós dentro da uma ou mais redes heterogêneas. Em alguns casos, o orquestrador pode selecionar nós de processamento, e distribuir as tarefas constituintes de um trabalho de processamento para nós selecionados com base em uma ou mais propriedades dos nós de processamento que são conhecidos para o orquestrador. Em algumas modalidades, cada nó de processamento pode manter um “cartão de pontuação” de métricas pertinentes de sua capacidade (por exemplo, velocidade de processador, memória disponível, capacidades de sensores, etc.). Em outras modalidades, “cartões de pontuações” para cada nó de processamento da rede são mantidos no orquestrador ou em um repositório de dados (por exemplo, uma base de dados) acessível para o orquestrador e um ou mais nós da rede.
[023]Dada a potencial heterogeneidade dos dispositivos nos nós de processamento 120a-c e 125a-b e o fato de que certos nós de processamento “fazem trabalho extra”, ou realizam tarefas de processamento distribuídas pelo orquestrador além de realizar tarefas como parte de uma funcionalidade pretendida originalmente, características de nível de máquina (por exemplo, velocidade de processador, memória disponível, características de sensores, etc.) de um nó particular nem sempre podem refletir precisamente o valor computacional da contribuição do nó para uma rede de processamento.
Como um exemplo não limitativo, considerar dois dispositivos constituindo nós de processamento de uma rede para os quais um orquestrador (por exemplo, o orquestrador 105) pode distribuir tarefas de processamento.
Dos dois dispositivos, um tem um processador mais rápido e mais memória, mas tempo ocioso menor que o do outro processador.
Alternativamente, um dispositivo com características de nível de máquina superior pode ser conectado ao orquestrador 105 por meio de uma rede que é lenta, não confiável, ou que reduz de outro modo sua utilidade para uma rede de processamento distribuído em um modo que não pode ser prontamente previsto ou modelado.
Em tais casos, as características de nível de máquina dos dois nós de processamento podem não refletir precisamente o valor computacional (neste exemplo, valor sendo expressado como a probabilidade de que, a qualquer momento, o nó será o primeiro dentre dois ou mais nós a completar de modo bem sucedido a tarefa). Em algumas modalidades, o orquestrador 105 modela variâncias em tempo ocioso, problema de conectividade de rede e outros fatores que são determinativos de um valor computacional do nó de processamento para uma rede de processamento. Em outras modalidades, tal como onde o número de nós de processamento na rede é grande ou os fatores que afetam valor computacional dos nós de processamento para a rede não podem ser modelados com segurança, o orquestrador 105 pode suplementar ou substituir modelagem de valor computacional dos nós de processamento por abordagens baseadas em tokens de acordo com modalidades desta revelação.
[024]De acordo com várias modalidades, o orquestrador 105 distribui tarefas de processamento para nós de processamento para execução probabilística. Tal como usado neste documento, o conceito de execução probabilística abrange uma disputa entre vários nós de processamento de uma rede para completar de modo bem sucedido uma tarefa de processamento distribuída. De acordo com certas modalidades, as potenciais incertezas (por exemplo, tarefas sendo canceladas por causa de o nó de processamento ter que realizar uma função de processamento natural, problemas de conectividade de rede, etc.) associadas com qualquer nó de processamento realizando de modo bem sucedido um processamento significam que tarefas de processamento são distribuídas para múltiplos nós, na expectativa de uma probabilidade alta de forma aceitável de que pelo menos um nó de processamento completará de modo bem sucedido a tarefa distribuída.
[025]Em certas modalidades desta revelação, o orquestrador 105 mantém métricas de progresso para cada nó de processamento dentro da rede. Uma métrica de progresso registra, dentre outras coisas, o número de disputas que o nó de processamento tenha “vencido” ao ser o primeiro para completar a tarefa distribuída. Quando a métrica de progresso para um nó de processamento excede um valor predeterminado, o nó é adicionado a uma rede de tokens. Em algumas modalidades, após um nó ser promovido para a rede de tokens, o orquestrador 105 pode parar de manter e atualizar a métrica de progresso para esse nó.
[026]De acordo com várias modalidades, implementação de uma rede de tokens compreendendo nós de processamento cujo valor computacional para uma rede para processamento distribuído fornece um mecanismo para redes de nós de processamento de acordo com modalidades desta revelação para auto-otimização de seu desempenho como um supercomputador distribuído. Por exemplo, adicionar executores comprovados a uma rede de tokens pode reduzir a carga de processamento em um orquestrador 105 ao reduzir ou eliminar tarefas de processamento associadas com modelar valor computacional dos nós de processamento para uma rede de processamento. Além disso, adicionar executores comprovados também pode contribuir para a auto-otimização da rede distribuída em que execução probabilística pode ser aperfeiçoada ao incluir um ou mais membros de uma rede de tokens (que, por sua filiação na rede de tokens, tenham mostrado sua capacidade para conciliar suas funções na rede de processamento com sua funcionalidade natural) dentro do conjunto de nós de processamento para o qual uma tarefa específica de processamento é designada.
[027]Ainda adicionalmente, modalidades implementando uma rede de tokens de acordo com esta revelação podem fornecer um modo barato de forma computacional de auto- otimização do desempenho de uma rede de processamento distribuído como um supercomputador para manusear tarefas de processamento ao fornecer uma marca de referência de desempenho subindo organicamente. Especificamente, em certas modalidades, para uma dada tarefa de processamento, o orquestrador 105 distribui a tarefa para um número de nós de processamento, incluindo um ou mais nós já na rede de tokens. Neste caso, a tarefa de processamento se torna uma disputa entre membros da rede de tokens e não membros. Para um não membro aumentar o valor de sua filiação de progresso e avançar para filiação na rede de tokens, ele deve derrotar membros correntes da rede de tokens na disputa para completar de modo bem sucedido a tarefa distribuída. Deste modo, a rede de tokens cresce ao adicionar à rede nós de processamento cujo valor computacional é maior que aquele dos nós existentes.
[028]De acordo com certas modalidades, a camada de aplicação 110 compreende uma ou mais aplicações que se conectam por meio de interface com o orquestrador 105 e que fornecem solicitações de processamento para o orquestrador
105. No exemplo não limitativo da Figura 1, aplicações dentro da camada de aplicação 110 fornecem solicitações de processamento para o orquestrador 105 com metadados especificando parâmetros de processamento para a solicitação de processamento. Parâmetros de processamento incluem, sem limitação, prazos finais de processamento para a solicitação de processamento (por exemplo, uma data na qual a tarefa precisa estar completada), parâmetros de prioridade para processar nós da rede de tokens (por exemplo, onde solicitações de processamento são distribuídas para execução probabilística, um parâmetro de prioridade pode especificar uma porcentagem mínima de nós de rede de tokens para os quais tarefas de processamento devem ser distribuídas), exigências de saída para a solicitação de processamento e parâmetros geográficos (por exemplo, exigindo que tarefas de processamento associadas com a solicitação de processamento sejam distribuídas somente para nós de processamento em um país particular).
[029]De acordo com certas modalidades, a rede 115 é uma rede com fio conectando o orquestrador 105 a cada um dos nós de processamento heterogêneos 120a, 120b e 120c. De acordo com outras modalidades, a rede 115 é uma rede sem fio, tal como uma rede sem fio Wi-Fi ou 3G. A rede 115 hospeda comunicações usando contextualmente protocolos de rede apropriados, incluindo, sem limitação, HTTP, Aeron, Queueing Telemetry Transport (MQTT), NanoIP, ROLL (Routing Over Low power and Lossy netwoks), uIP e UDP. Outros protocolos de comunicação são possíveis e estão dentro do escopo da presente revelação.
[030]De acordo com certas modalidades, os nós de processamento 120a-c compreendem plataformas de processamento em rede que são membros de uma rede de tokens, e que são capazes de receber de modo seguro tarefas de processamento distribuídas pelo orquestrador 105. Adicionalmente, cada um dos nós de processamento 120a-c é associado com um valor identificador exclusivo armazenado em uma memória à qual o orquestrador 105a tem acesso. No exemplo não limitativo da Figura 1, cada um dos nós de processamento 120a-c está associado adicionalmente com um dos tokens 130a-130c. Tal como será discutido com mais detalhes neste documento, em certas modalidades, cada um dos tokens 130a-130c compreende um identificador exclusivo mantido em uma carteira de tokens.
[031]De acordo com certas modalidades, os nós de processamento 120a-c são potencialmente heterogêneos com relação às suas capacidades de processamento e de manuseio de trabalho. Facetas de heterogeneidade entre os nós de processamento 120a-c incluem, sem limitação, velocidade de processamento, RAM disponível, armazenamento disponível para exigências de energia, tipos de conectividade de rede (por exemplo, conectividade Wi-Fi, conectividade 3G, Ethernet de GigaBit), sensores disponíveis (por exemplo, microfones, termômetros, câmeras, barômetros), funcionalidade de processador (por exemplo, capacidade de processamento de ponto flutuante, capacidade para geração de número aleatório verdadeiro) e número de núcleos de processador. De acordo com certas modalidades, os nós de processamento 120a-c são dispositivos membros, tal como descrito no pedido de patente provisório US 62/637.267, o qual está incorporado na sua totalidade a este documento pela referência.
[032]Em algumas modalidades, os nós de processamento 125a-b compreendem plataformas de processamento em rede que não são membros de uma rede de tokens, e capazes de receber de modo seguro tarefas de processamento distribuídas pelo orquestrador 105. Adicionalmente, no exemplo não limitativo da Figura 1, cada um dos nós de processamento 125a-b está associado com um valor identificador exclusivo e um valor de uma métrica de progresso armazenada em uma memória à qual o orquestrador 105 tem acesso para ler-gravar.
[033]De acordo com certas modalidades, os nós de processamento 125a-b são potencialmente heterogêneos com relação às suas capacidades de processamento e de manuseio de tarefa. Facetas de heterogeneidade entre os nós de processamento 125a-b incluem, sem limitação, velocidade de processamento, RAM disponível, armazenamento disponível para exigências de energia, tipos de conectividade de rede (por exemplo, conectividade Wi-Fi, conectividade 3G, Ethernet de GigaBit), sensores disponíveis (por exemplo, microfones, termômetros, câmeras, barômetros), funcionalidade de processador (por exemplo, capacidade de processamento de ponto flutuante, capacidade para geração de número aleatório verdadeiro) e número de núcleos de processador. De acordo com certas modalidades, os nós de processamento 125a-b são dispositivos membros, tal como descrito no pedido de patente provisório US 62/637.267.
[034]A Figura 2 ilustra um exemplo de um orquestrador 200 de acordo com certas modalidades desta revelação.
[035]De acordo com certas modalidades, o orquestrador 200 é implementado em um computador servidor e compreende uma memória 205, um processador 210, um avaliador 215, um conjunto de APIs 220 e uma interface de rede 225. O orquestrador 200, em algumas modalidades, pode ser um orquestrador de trabalhos, tal como descrito no pedido de patente provisório US 62/637.267.
[036]No exemplo não limitativo da Figura 2, o orquestrador 200 compreende a memória 205. A memória 205 pode conter uma ou mais bibliotecas de dados (por exemplo, cartões de pontuações) especificando as capacidades de processamento de nós de processamento. Em algumas modalidades, bibliotecas de capacidades dos nós de processamento podem ser mantidas em um nível alto de granularidade, com dados para cada nó de processamento, incluindo, sem limitação, informação quanto aos recursos específicos de processador e de memória do dispositivo. Alternativamente, de acordo com outras modalidades, a biblioteca de informação de capacidade de dispositivo consiste de um dicionário de identificadores de dispositivos e uma classificação (por exemplo, “10X” ou ”100X”) determinada para o dispositivo.
[037]Adicionalmente, a memória 205 pode conter um índice pareando valores de métricas de progresso com identificadores exclusivos de nós de processamento para os quais o orquestrador 200 pode distribuir tarefas de processamento. Em algumas modalidades, a memória 205 compreende adicionalmente algoritmos de pontuação para associar tarefas de processamento com valor computacional, assim como identificadores exclusivos associando nós de processamento pertencendo a uma rede de tokens (por exemplo, os nós de processamento 120a-c na Figura 1) com identificadores exclusivos de carteiras de tokens.
[038]De acordo com certas modalidades, o processador 210 é um chip de unidade central de processamento (CPU) fornecido dentro de um servidor. De acordo com outras modalidades, o orquestrador 200 pode ser implementado através de múltiplos servidores, ou como parte de um sistema de computação em nuvem. Em tais modalidades, o processador 210 consiste de múltiplos processadores separados operando através de um arranjo alterável dinamicamente de máquinas servidoras. De acordo ainda com outras modalidades, o orquestrador 200 pode ser implementado em uma máquina virtual, e o processador 210 é uma CPU virtual consistindo de uma designação de recursos de processador da(s) máquina(s) física(s) implementando a máquina virtual.
[039]Em várias modalidades, o orquestrador 200 inclui o avaliador 215, o qual realiza várias tarefas de pré- processamento e de pós-processamento em solicitações de processamento recebidas pelo orquestrador 200. De acordo com certas modalidades, avaliador 215 analisa sintaticamente solicitações de processamento recebidas no orquestrador como tarefas de processamento constituintes que podem ser distribuídas para nós de processamento. De acordo com certas modalidades, o avaliador 215 também pode implementar algoritmos de ponderação ou outros processos para determinar uma métrica de trabalho computacional associado com uma tarefa de processamento distribuída (e, por implicação, valor computacional para a rede de processamento fornecido pelo nó de processamento que é o primeiro a completar uma dada tarefa de processamento). Por exemplo, um algoritmo implementado pelo avaliador 215 pode fornecer uma métrica de trabalho computacional com base em um número de operações de ponto flutuante (“flops”) associadas com uma tarefa de processamento. Em um outro exemplo, um algoritmo implementado pelo avaliador 215 pode fornecer uma métrica de trabalho computacional com base no volume de dados não processados fornecidos como parte da solicitação de processamento. Inúmeras variações são possíveis e dentro do escopo pretendido desta revelação.
[040]De acordo com algumas modalidades, o conjunto de APIs 220 contém uma ou mais interfaces de programação de aplicação (APIs) 225a-225d para estabelecer comunicações entre o orquestrador 200 e nós de processamento.
[041]No exemplo não limitativo da Figura 2, o conjunto de APIs 220 compreende uma ou mais APIs que são capazes de mapear um conjunto de funções de processamento predefinidas em uma solicitação de processamento (por exemplo, para realizar uma função de dispersão) para um conjunto de comandos para os nós de processamento. Em algumas modalidades, as funções de processamento predefinidas podem ser expressadas em um formato orientado a objeto, e compreendendo métodos e atributos. Por exemplo, em algumas modalidades, as funções predefinidas podem mapear para API objetos de um sistema operacional específico de IoT, tal como a plataforma Conera desenvolvida pela V2COM, Inc.
[042]De acordo com algumas modalidades, as funções de processamento predefinidas podem ser mapeadas para comandos específicos de dispositivo ou de sistema operacional. Por exemplo, de acordo com algumas modalidades, a API pode mapear uma função de “dispersão” em uma solicitação de processamento para o método Java “hashCode” que pode ser implementado por meio de um nó de processamento. Alternativamente, em algumas modalidades, o conjunto de APIs 220 pode compreender uma única API, a qual mapeia funções predefinidas para comandos através do espectro total de sistemas operacionais e capacidades de processamentos encontrados em nós de processamento. De acordo ainda com modalidades adicionais, APIs individuais no conjunto de APIs 220 podem fornecer mapeamentos de funções predefinidas de nível de centro de comando para diferentes modelos de dados, a fim de suportar comunicações através de uma faixa ampla de contextos de rede e capacidades de nós de processamento.
[043]Em algumas modalidades, a interface de rede 225 opera para interligar o orquestrador 200 com uma ou mais redes (por exemplo, a rede 115 na Figura 1). A interface de rede 225, dependendo de modalidades, pode ter um endereço de rede expressado como um ID de nó, um número de porta ou um endereço IP. De acordo com certas modalidades, a interface de rede 225 é implementada como hardware, tal como por meio de uma placa de interface de rede (NIC). Alternativamente, a interface de rede 225 pode ser implementada como software, tal como por meio de uma instância da classe java.net.NetworkInterface. Adicionalmente, de acordo com algumas modalidades, a interface de rede 225 suporta comunicações em múltiplos protocolos, tais como TCP/IP assim como protocolos sem fio, tais como 3G ou Bluetooth.
[044]A Figura 3 ilustra um nó de processamento de acordo com várias modalidades desta revelação.
[045]A Figura 3 ilustra um exemplo de um nó de processamento 300 de acordo com certas modalidades desta revelação. De acordo com algumas modalidades, o nó de processamento 300 é um tipo “inteligente” de um outro dispositivo, tal como um aparelho doméstico ou controlador de outros aparelhos domésticos. De acordo com outras modalidades, o nó de processamento 300 é um smartphone ou um tablet. De acordo ainda com outras modalidades, o nó de processamento 300 é um medidor em rede, ou uma placa de desenvolvimento fixada a um ponto de presença (por exemplo, uma iluminação de rua, um comutador, um sinal de trânsito ou um poste de serviço de utilidade pública) de um serviço de utilidade pública. De acordo ainda com modalidades adicionais, o nó de processamento 300 pode ser um dispositivo de porta de comunicação, tal como um dispositivo de porta de comunicação de Internet das Coisas (IoT). Exemplos de dispositivos de porta de comunicação que podem funcionar como um nó de processamento 300 incluem, sem limitação, o Neuron C Smart Concentrator e Dendrion Power Smart Submetering Unit da V2COM, Inc. e inúmeras modalidades são possíveis e estão no escopo desta revelação.
[046]De acordo com certas modalidades, o nó de processamento 300 inclui um processador 305. No exemplo não limitativo da Figura 3, o processador 305 é um processador de múltiplas funções (tal como o oposto, por exemplo, a um ASIC específico de função) com um ou mais núcleos, o qual é capaz de executar código de programa armazenado em uma memória não transitória 310. No exemplo não limitativo da Figura 3, o processador 305 inclui um relógio 307 ou é acoplado a ele, cuja velocidade fornece uma medida da capacidade de processamento do processador 305. Em algumas modalidades, o processador 305 tem recursos tais como, por exemplo, e sem limitação, processamento de ponto flutuante, geração de número aleatório verdadeiro ou um cache inteligente, não encontrados no processador de outros nós de processamento.
[047]De acordo com algumas modalidades, a memória 310 contém código de programa que, quando executado pelo processador 305, induz o processador para realizar as funções do nó de processamento 300 do qual ele é uma parte.
Retornando para o exemplo não limitativo de um controlador de sistema de automação de residência discutido neste documento, a memória 310 contém instruções que quando executadas pelo processador 305 induzem o mesmo para realizar funções, tais como ler e gravar dados de temperatura na memória 310, controlar a operação dos dispositivos de entrada/saída 320 para enviar sinais de controle para dispositivos dentro da residência (por exemplo, lâmpadas elétricas inteligentes, aquecedores e condicionadores de ar controlados eletronicamente, e cortinas de janelas controladas eletronicamente). Adicionalmente, regiões da memória 310 podem ser alocadas para armazenamento de dados e armazenamento de código de programa adicional, incluindo uma ou mais aplicações 315.
[048]De acordo com certas modalidades, as aplicações 315 compreendem código de programa ou software que pode ser gravado na memória 310 e lido e executado pelo processador
305. No exemplo não limitativo da Figura 3, as aplicações 315 incluem aplicações associadas com a função de núcleo do nó de processamento (por exemplo, aplicações de automação de residência, tal como uma aplicação para controle automatizado de lâmpadas elétricas conectadas à Internet), e máquinas virtuais hospedadas no nó de processamento 300.
[049]No exemplo não limitativo da Figura 3, o nó de processamento 300 tem os dispositivos de entrada/saída 320. De acordo com certas modalidades, os dispositivos de entrada/saída 320 incluem um mostrador (tal como uma tela de LED), um teclado e um mouse. De acordo com outras modalidades, os dispositivos de entrada/saída 320 são um conjunto de pinos de entrada/saída conectados a pinos de um processador ou controlador, tal como o processador 305.
[050]No exemplo não limitativo da Figura 3, o nó de processamento 300 tem um sistema operacional (OS) 325, o qual suporta as funções básicas do nó de processamento 300, incluindo, sem limitação, executar as aplicações 315, receber dados dos sensores 330 e enviar e receber dados por meio da interface de rede 325. De acordo com algumas modalidades, o OS 325 pode ser um sistema operacional de uso geral, tal como o Android ou iOS. De acordo com outras modalidades, o OS 325 pode ser um sistema operacional proprietário tal como o Fire OS. De acordo ainda com outras modalidades, o OS 325 é um sistema operacional orientado a IoT, tal como o Conera da V2COM, Inc.
[051]De acordo com certas modalidades, o nó de processamento 300 inclui os sensores 330. No exemplo não limitativo da Figura 3, os sensores 330 incluem, sem limitação, câmeras, microfones, termômetros, sensores barométricos, medidores de luz, monitores de energia, medidores de água e sensores de chuva.
[052]Em algumas modalidades, a interface de rede 325 opera para interligar o nó de processamento 300 com uma ou mais redes (por exemplo, a rede 115 na Figura 1). A interface de rede 325, dependendo de modalidades, pode ter um endereço de rede expressado como um ID de nó, um número de porta ou um endereço de IP. De acordo com certas modalidades, a interface de rede 325 é implementada como hardware, tal como por meio de uma placa de interface de rede (NIC). Alternativamente, a interface de rede 325 pode ser implementada como software, tal como por meio de uma instância da classe java.net.NetworkInterface.
Adicionalmente, de acordo com algumas modalidades, a interface de rede 325 suporta comunicações em múltiplos protocolos, tais como TCP/IP assim como protocolos sem fio, tais como 3G ou Bluetooth.
[053]A Figura 4 ilustra operações de um método 400 de acordo com esta revelação.
[054]No exemplo não limitativo da Figura 4, as operações do método 400 são realizadas em um orquestrador incorporado em uma única plataforma de servidor. Outras modalidades nas quais as operações do método 400 são realizadas por múltiplas e/ou diferentes plataformas de computação (por exemplo, um nó de processamento, tal como mostrado na Figura 1) são possíveis e dentro do escopo pretendido desta revelação.
[055]Em algumas modalidades, na operação 405, o orquestrador (por exemplo, o orquestrador 105 na Figura 1) recebe uma solicitação de processamento Solicitações de processamento, em algumas modalidades, são recebidas de aplicações por meio de uma ou mais interfaces do orquestrador. Em outras modalidades, o recebimento de uma tarefa de processamento no orquestrador é associado com o estabelecimento de um contrato inteligente entre uma carteira digital do orquestrador e a carteira digital associada com um identificador exclusivo de uma parte (ou dispositivo) submetendo a solicitação de processamento. Tal como usado neste documento, o termo solicitação de processamento abrange submissões digitais para o orquestrador que definem parâmetros de uma tarefa computacional para ser realizada por nós de processamento configurados para receber tarefas de processamento distribuídas pelo orquestrador. Em algumas modalidades, solicitações de processamento são submetidas como grupos de arquivos de dados a ser processados, junto com instruções definidas por usuário. Em outras modalidades, solicitações de processamento podem ser submetidas em um formato orientado a objetos, compreendendo um conjunto definido de atributos e métodos a ser realizados no mesmo. Em outras modalidades, solicitações de processamento podem ser submetidas como um conjunto de indicadores para fontes de dados para as quais um conjunto de operações predefinidas deve ser realizado. Exemplos de operações computacionais que podem ser incluídas em uma solicitação de processamento recebida na operação 405 incluem, sem limitação, tarefas de reconhecimento de imagem, extração de características (tal como em uma rede neural convolucional) e computar valores de dispersão.
[056]No exemplo não limitativo da Figura 4, na operação 410, o orquestrador identifica um ou mais processamentos na solicitação de processamento. De acordo com algumas modalidades, a identificação de tarefas de processamento em uma solicitação de processamento compreende reformular a solicitação de processamento como um conjunto de tarefas de processamento constituintes distintas que são casadas com as capacidades de nível de máquina de nós de processamento na rede.
[057]De acordo com certas modalidades, na operação 415, o orquestrador distribui as tarefas de processamento identificadas na operação 415 para nós de processamento da rede de processamento por meio de uma interface de rede, com base em um ou mais fatores predeterminados. No exemplo não limitativo da Figura 4, os fatores não limitativos incluem, sem limitação, valores de métricas de desempenho de nó de processamento extraídos de cartões de pontuações mantidos no orquestrador. Em outras modalidades, os valores de métricas de desempenho de nó de processamento podem ser mantidos nos próprios nós de processamento. Em certas modalidades, fatores predeterminados em que distribuição de tarefas de processamento pode ser baseada incluem, sem limitação, indicadores (tal como uma variável binária) que indicam se um nó de processamento é um membro de uma rede de tokens, ou alternativamente o valor da métrica de progresso para um nó de processamento que ainda não é um membro de uma rede de tokens.
[058]Em algumas modalidades, como parte da operação 415, o orquestrador, ou um componente do mesmo (por exemplo, o avaliador 215 mostrado na Figura 2), também pode computar o valor de uma métrica representando o custo computacional para o nó de processamento (e, por implicação, o valor do trabalho computacional para a rede de processamento) associado com processar a tarefa distribuída. Tal como discutido neste documento, métricas de custo computacional incluem, sem limitação, estimativas do número de flops associadas com uma tarefa, ou o volume de dados brutos não processados.
[059]Em algumas modalidades, após as tarefas de processamento serem distribuídas e fornecidos os nós de processamento identificados por meio de uma rede (por exemplo, da rede 115 na Figura 1), uma disputa começa entre nós de processamento para ser o primeiro a processar de modo bem sucedido uma tarefa de processamento distribuída.
Em algumas modalidades, o campo de nós de processamento pode ser compreendido totalmente de nós de processamento dentro da rede de tokens. Em outras modalidades, o campo de nós de processamento pode incluir um ou mais nós de processamento dentro da rede de tokens, para fornecer uma marca de referência de desempenho, e promover a auto- otimização da rede de processamento ao exigir novas adições à rede de tokens para serem executores maiores que os nós de processamento correntes da rede de tokens.
[060]Em várias modalidades, na operação 420, um dos nós para os quais a tarefa de processamento foi distribuída em operação é o primeiro a notificar o orquestrador de que ele completou de modo bem sucedido a sua tarefa de processamento, e o orquestrador recebe a tarefa completada do nó. Em algumas modalidades, o nó de processamento notifica o orquestrador de sua conclusão bem sucedida ao fornecer para o orquestrador a saída (por exemplo, um valor calculado ou dados processados) de sua operação de processamento. Em outras modalidades, a recepção pelo orquestrador da tarefa completada é separada do recebimento de notificação de que o nó de processamento completou de modo bem sucedido a tarefa.
[061]Em algumas modalidades, na operação 425, o orquestrador realiza uma determinação de se a tarefa de processamento completada foi completada por um nó de processamento que é um membro de uma rede de tokens. Em um exemplo não limitativo, a tarefa de processamento completada recebida no orquestrador na operação 420 pode incluir também um indicador confiável (tal como uma assinatura digital do nó de processamento) quanto à identidade do nó de processamento. Com base no indicador confiável da identidade do nó de processamento, o orquestrador determina se a tarefa de processamento foi completada por um nó pertencendo a uma rede de tokens.
[062]No exemplo não limitativo da Figura 4, se a tarefa distribuída não foi processada por um nó na rede de tokens, o método 400 prossegue para a operação 430, em que o orquestrador atualiza um valor existente de uma métrica de progresso para o nó identificado na operação 425. Em algumas outras modalidades, o orquestrador cria um valor novo ou inicial de uma métrica de progresso para o nó de processamento. Em algumas modalidades, o valor da métrica de progresso pode refletir o agregado calculado do valor (por exemplo, uma estimativa de flops determinada pelo avaliador 215 na Figura 2) das tarefas distribuídas que o nó de processamento foi o primeiro a completar de modo bem sucedido. Alternativamente, em outras modalidades, o valor da métrica de progresso, dependendo das exigências totais de desempenho da rede de processamento, pode compreender o número de tarefas distribuídas que o nó de processamento foi o primeiro a prover o orquestrador com uma tarefa completada. Inúmeras variações são possíveis e dentro do escopo pretendido desta revelação.
[063]De acordo com certas modalidades, na operação 435, o orquestrador realiza uma determinação quanto a se a métrica de progresso atualizada para o nó de processamento do qual o orquestrador recebeu a tarefa completada na operação 420 excede um valor limiar predeterminado. Por exemplo, em modalidades nas quais a métrica de progresso é encaixada fora de um volume de dados brutos na solicitação de processamento completada de modo bem sucedido pelo nó, o valor limiar pode ser de dez gigabytes (10 GB). Em tais modalidades, na operação 435, o orquestrador compara o volume total de dados associados com tarefas distribuídas que o nó de processamento foi o primeiro dentre um ou mais nós de processamento a completar contra o valor limiar de 10 GB.
[064]Embora no exemplo anterior a determinação de se o valor da métrica de progresso para o nó de processamento excede um valor limiar tenha sido descrita com referência para uma modalidade em que cada nó de processamento é avaliado com base em uma única métrica comum e valor limiar predeterminado comum único, a revelação não está assim limitada. Em algumas modalidades, o grau de heterogeneidade entre nós de processamento pode ser de tal maneira que os vários nós de processamento do sistema podem ser organizados em classes e progresso de um nó particular para filiação na rede de tokens é determinado com base em uma métrica de progresso específica de classe e par de valores limiares. Assim, em certas redes de processamento heterogêneas de acordo com modalidades desta revelação, uma classe de progresso dos nós de processamento pode ser avaliada de acordo com as métricas de volumes de dados descritas no parágrafo anterior, enquanto uma outra classe de dispositivos (por exemplo, dispositivos tendo unidades de processamento gráfico ou outros processadores capazes de processar simultaneamente um número grande de encadeamentos) pode ser avaliada de acordo com uma métrica de progresso denominada de modo diferente (por exemplo, um número de dispersões computadas).
[065]No exemplo não limitativo da Figura 4, se a métrica de progresso atualizada para o nó de processamento exceder um valor predeterminado, então o método 400 prossegue para a operação 440, em que o nó de processamento, cuja métrica de progresso foi determinada, na operação 435, como tendo um valor excedendo um valor limiar predeterminado, é adicionado à rede de tokens. De acordo com algumas modalidades, adicionar o nó de processamento à rede de tokens é de forma computacional leve, e simplesmente exige adicionar o nó a um índice de identificadores de nós de processamento. Em outras modalidades, a integridade da rede de tokens pode ser aprimorada (por exemplo, ao impedir adições fraudulentas ou não merecidas à rede de tokens) ao implementar um sistema de carteira digital e livro contábil distribuído. Em algumas modalidades, cada token é associado com um livro contábil distribuído, e o orquestrador e nós de processamento são associados com identificadores exclusivos (por exemplo, um identificador IMEI). Quando um nó de processamento é adicionado à rede de tokens, o livro contábil distribuído é atualizado para incluir uma entrada casando o identificador exclusivo de um token com o identificador exclusivo do nó de processamento, ou com a carteira digital de um portador de token. Uma vez que a adição do nó de processamento à rede de tokens no livro contábil distribuído tenha sido ratificada pelas máquinas mantendo o livro contábil distribuído, o nó de processamento é adicionado formalmente e totalmente como um membro da rede de tokens.
[066]De acordo com certas modalidades, se a métrica de progresso atualizada para o nó de processamento não exceder um valor predeterminado, então o método 400 prossegue para a operação 445, em que, para os propósitos da tarefa de processamento distribuída na operação 415 e do nó de processamento, a instância corrente do método 400 é concluída. Entretanto, deve ser notado que, em algumas modalidades, um dado nó de processamento pode receber múltiplas tarefas de processamento distribuídas pelo orquestrador, e como tal o orquestrador pode estar realizando múltiplas instâncias do método 400 em relação a um nó de processamento particular.
[067]Adicionalmente, em algumas modalidades, se for determinado na operação 425 que a tarefa distribuída foi processada de modo bem sucedido por um nó na rede de tokens, o método 400 prossegue para operação 450, em que uma regra de rede de tokens é aplicada ao nó de processamento do qual a tarefa completada foi recebida na operação 420. De acordo com algumas modalidades, aplicação da regra de rede de tokens pode compreender fornecer um identificador exclusivo associado com o nó de processamento com uma recompensa ou outro proxy para valor em troca da conclusão rápida bem sucedida do nó de processamento da tarefa de processamento distribuída na operação 415.
[068]Tal como discutido em outro lugar neste documento, ao adicionar nós de processamento com valor computacional demonstrado como membros de uma rede de tokens, certas modalidades de acordo com esta revelação fornecem um modo de forma computacional barata (por exemplo, como uma alternativa para tentar modelar, com base na heterogeneidade de potência computacional, qualidade de conexão de rede, e disponibilidade esperada para realizar tarefas distribuídas) de auto-otimização de uma rede de nós de processamento heterogêneos como um supercomputador para processamento distribuído de grandes solicitações de processamento. De acordo com algumas modalidades, tarefas de processamento são distribuídas para um conjunto de nós de processamento extraído que inclui membros da rede de tokens. Deste modo, novas adições à rede de tokens são, no conjunto, pelo menos tão capazes de forma computacional quanto os membros existentes da rede de tokens. Portanto, a rede de processamento é auto-otimizada ao identificar e expandir o conjunto de nós de processamento cujo valor computacional para a rede tenha sido comprovado. Adicionalmente, a rede de processamento é também auto- otimizada em que, ao longo do tempo, o desempenho computacional agregado da rede de tokens aumenta regularmente, como um resultado do fato de ser adicionado como um novo membro da rede de tokens um nó de processamento que de uma maneira geral deve superar em desempenho membros correntes da rede de tokens.
[069]Auto-otimização de uma rede de nós de processamento como um supercomputador para processamento distribuído de grandes solicitações de processamento pode ser estendida e aprimorada ao capacitar tokens para serem transferidos de modo seguro. Capacitar tokens (e, por implicação, um nó de processamento associado com o portador de token) para serem transferidos, por exemplo, pode abordar questões que surgem quando uma mudança em circunstâncias (por exemplo, danos ao nó de processamento, uma mudança na quantidade de tempo ocioso do nó de processamento, etc.) diminui o valor computacional de um nó de processamento na rede de tokens para uma rede de processamento distribuído. Em certas modalidades, o token obtido pelo primeiro nó de processamento pode ser transferido para um segundo nó de processamento, sem ter que esperar o segundo nó de processamento obter separadamente sua filiação no nó de token. Ao não ligar rigidamente o token indicando uma filiação do nó de processamento na rede de tokens a uma única máquina específica, os nós de processamento da rede de tokens podem ser atualizados, reparados ou substituídos, o que ajuda a assegurar que os nós de processamento da rede de tokens são capazes de manter seus status como contribuintes comprovados para a rede de processamento.
[070]A Figura 5 ilustra uma estrutura de dados 500 para rastrear filiação em uma rede de tokens de acordo com certas modalidades desta revelação. No exemplo não limitativo da Figura 5, a estrutura de dados 500 compreende uma entrada em um livro contábil distribuído que é ratificado por computadores em rede que são conectados comunicativamente a um orquestrador (por exemplo, o orquestrador 105 na Figura 1). Em outras modalidades, a estrutura de dados 500 é mantida como dados no orquestrador. Em outras modalidades, os dados 500 são mantidos em uma base de dados de linguagem de pesquisa estruturada (SQL) acessível para um orquestrador. Inúmeras modalidades são possíveis e dentro do escopo pretendido desta revelação.
[071]De acordo com certas modalidades, para cada token de uma rede de tokens, pelo menos uma instância confiável da estrutura de dados 500 é mantida. No exemplo não limitativo da Figura 5, a instância da estrutura de dados 500 é mapeada para o identificador exclusivo de um token
505. Neste exemplo, o token #1234 é mapeado para o identificador exclusivo “ZZ9876”. Em algumas modalidades, um orquestrador pode servir como um corretor de nomenclatura para IDs exclusivos associados com tokens. Nesta capacidade, o orquestrador pode designar IDs exclusivos para tokens, e também verificar a autenticidade de IDs exclusivos apresentados no orquestrador, tal como ao confirmar se um ID exclusivo casa com um valor em um registro mantido pelo orquestrador.
[072]Em algumas modalidades, a estrutura de dados 500 fornece uma listagem confiável de identificadores de origem e de destino para cada transação no tempo de vida do token, começando com uma transferência a partir de uma entidade de base confiável.
[073]No exemplo não limitativo da Figura 5, a primeira entrada 510 na estrutura de dados 500 representa a adição de um nó de processamento a uma rede. Na transação registrada pela primeira entrada 510, o token #1234 tendo o identificador exclusivo #ZZZ9876 é transferido da carteira da tesouraria para a carteira do “Usuário 1” (que está associado com o ID exclusivo #: DEF 2345). Tal como usado neste documento, o termo “carteira” abrange evidência digital que é confiável para nós de processamento e usuários da rede de processamento quanto à posse corrente de um token. Carteiras podem, sem limitação, ser mantidas como entradas de base de dados em um servidor confiável, ou em um livro contábil distribuído. Adicionalmente, tal como usado neste documento, para o propósito de manter registros na estrutura de dados 500, o termo “usuário” abrange tanto membros constituintes da rede de processamento (por exemplo, orquestrador(s) e nós de processamento) quanto pessoas e entidades que possuem ou controlam nós de processamento da rede. No exemplo não limitativo da Figura 5, “Usuário 1” se refere a um nó de processamento cuja métrica de progresso superou um valor limiar.
[074]De acordo com certas modalidades, cada transferência de um token de um usuário para outro usuário é registrada na estrutura de dados 500, e intervalos na cadeia de transferência (por exemplo, “de a para b” então “de c para d”) ativam a aplicação de regras predeterminadas (por exemplo, suspender todas as transações após o intervalo na cadeia de transferência). Adicionalmente, de acordo com algumas modalidades, para uma nova entrada na estrutura de dados 500 ser reconhecida ela pode ser submetida à ratificação por um grupo de máquinas pares que mantêm a estrutura de dados 500 como uma entrada em um livro contábil distribuído.
[075]No exemplo não limitativo da Figura 5, a estrutura de dados 500 está mostrada como mantendo uma cadeia de transferências completa a partir da transferência inicial 510 da carteira da tesouraria para uma penúltima 515 e para uma transferência final 520. Tal como mostrado na Figura 5, o token #1234 está retido correntemente pelo “usuário 4”. De acordo com certas modalidades, uma carteira digital associada com o “usuário 4”, subsequente à entrada 530 ser registrada na estrutura de dados 500, seria atualizada para refletir a posse corrente do token pelo “usuário 4”.
Adicionalmente, em algumas modalidades, para impedir fraude ou decidir conflitos quanto à posse de token, um orquestrador pode implementar uma hierarquia entre instâncias da estrutura de dados 500 e carteiras digitais dos usuários, pelo que a estrutura de dados 500 é acordada como o registro de controle de posse de token.
[076]Nada da descrição neste pedido deve ser lido como indicando que qualquer elemento, etapa ou função particular é um elemento essencial que deve ser incluído no escopo de reivindicação. O escopo da matéria em questão patenteada é definido somente pelas reivindicações. Além disso, nenhum das reivindicações é proposta para chamar o 35 U.S.C. § 112(f) a não ser que as palavras exatas “meios para” sejam seguidas por um particípio.

Claims (20)

REIVINDICAÇÃO
1. Método para processamento distribuído, o método caracterizado pelo fato de que compreende: receber uma solicitação de processamento em um orquestrador, o orquestrador compreendendo um processador, uma interface de rede e uma memória, o orquestrador conectado por meio da interface de rede a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens; identificar uma ou mais tarefas na solicitação de processamento; distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós; receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós; realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens; em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, atualizar um valor de uma métrica de progresso para o nó não na rede de tokens; realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado; e em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.
2. Método, de acordo com a reivindicação 1,
caracterizado pelo fato de que o orquestrador é conectado por meio da interface de rede à rede de tokens, a rede de tokens compreendendo uma rede de nós heterogêneos.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a distribuição da uma ou mais tarefas da solicitação de processamento compreende otimizar uma métrica de desempenho de rede com base em valores de propriedades de nós incluídos no cartão de pontuação para cada nó do conjunto de nós.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o orquestrador é implementado em um ou mais nós do conjunto de nós da rede de processamento.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que adicionar o nó à rede de tokens compreende associar um ID exclusivo de um token com um ID exclusivo de uma carteira de tokens.
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que associar o ID exclusivo de um token com o ID exclusivo da carteira de tokens compreende gerar uma entrada em um livro contábil distribuído.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: em resposta a adicionar o nó à rede de tokens, atualizar um índice de token-nó do orquestrador para associar um identificador exclusivo de um token com o nó adicionado à rede de tokens.
8. Orquestrador, caracterizado pelo fato de que compreende:
um processador; uma interface de rede conectada a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens; e uma memória contendo instruções que, quando executadas pelo processador, induzem o orquestrador para: receber uma solicitação de processamento; identificar uma ou mais tarefas na solicitação de processamento; distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós; receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós; realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens; em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, atualizar um valor de uma métrica de progresso para o nó não na rede de tokens; realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado; e em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.
9. Orquestrador, de acordo com a reivindicação 8,
caracterizado pelo fato de que é conectado por meio da interface de rede à rede de tokens, a rede de tokens compreendendo uma rede de nós heterogêneos.
10. Orquestrador, de acordo com a reivindicação 8, caracterizado pelo fato de que a distribuição da uma ou mais tarefas da solicitação de processamento compreende otimizar uma métrica de desempenho de rede com base em valores de propriedades de nós incluídos no cartão de pontuação para cada nó do conjunto de nós.
11. Orquestrador, de acordo com a reivindicação 8, caracterizado pelo fato de que é implementado em um ou mais nós do conjunto de nós da rede de processamento.
12. Orquestrador, de acordo com a reivindicação 8, caracterizado pelo fato de que adicionar o nó à rede de tokens compreende associar um ID exclusivo de um token com um ID exclusivo de uma carteira de tokens.
13. Orquestrador, de acordo com a reivindicação 12, caracterizado pelo fato de que a associação do ID exclusivo de um token com o ID exclusivo da carteira de tokens compreende gerar uma entrada em um livro contábil distribuído.
14. Orquestrador, de acordo com a reivindicação 8, caracterizado pelo fato de que a memória contém instruções que, quando executadas pelo processador, induzem o orquestrador a: em resposta a adicionar o nó à rede de tokens, atualizar um índice de token-nó do orquestrador para associar um identificador exclusivo de um token com o nó adicionado à rede de tokens.
15. Meio não transitório legível por computador,
caracterizado pelo fato de que contém código de programa que, quando executado por um processador, induz um orquestrador para: receber uma solicitação de processamento por meio de uma interface de rede do orquestrador conectado a uma rede de nós de processamento, a rede de nós de processamento compreendendo uma rede de tokens; identificar uma ou mais tarefas na solicitação de processamento; distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, a distribuição baseada em um cartão de pontuação para cada nó do conjunto de nós; receber, por meio da interface de rede, uma tarefa completada de um nó do conjunto de nós; realizar uma determinação com relação a se a tarefa completada foi processada por um nó na rede de tokens; em resposta a uma determinação de que a tarefa completada foi processada por um nó não na rede de tokens, atualizar um valor de uma métrica de progresso para o nó não na rede de tokens; realizar uma determinação com relação a se o valor da métrica de progresso excede um valor predeterminado; e em resposta a uma determinação de que o valor da métrica de progresso excede um valor predeterminado, adicionar o nó à rede de tokens.
16. Meio não transitório legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que contém código de programa que, quando executado pelo processador, induz o orquestrador para se conectar por meio da interface de rede à rede de tokens, a rede de tokens compreendendo uma rede de nós heterogêneos.
17. Meio não transitório legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que contém código de programa que, quando executado pelo processador, induz o processador para distribuir, por meio da interface de rede, a uma ou mais tarefas da solicitação de processamento para um conjunto de nós da rede para processamento, em que a distribuição da uma ou mais tarefas da solicitação de processamento compreende otimizar uma métrica de desempenho de rede com base em valores de propriedades de nós incluídos no cartão de pontuação para cada nó do conjunto de nós.
18. Meio não transitório legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que contém código de programa que, quando executado pelo processador, induz o orquestrador para ser implementado em um ou mais nós do conjunto de nós da rede de processamento.
19. Meio não transitório legível por computador, de acordo com a reivindicação 15, caracterizado pelo fato de que adicionar o nó à rede de tokens compreende associar um ID exclusivo de um token com um ID exclusivo de uma carteira de tokens.
20. Meio não transitório legível por computador, de acordo com a reivindicação 19, caracterizado pelo fato de que contém código de programa que, quando executado pelo processador, induz o orquestrador para associar o ID exclusivo do token com o ID exclusivo da carteira de tokens, em que a associação do ID exclusivo de um token com o ID exclusivo da carteira de tokens compreende gerar uma entrada em um livro contábil distribuído.
BR112020020119-7A 2018-03-30 2019-03-29 sistema e método para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos BR112020020119A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862650659P 2018-03-30 2018-03-30
US62/650,659 2018-03-30
PCT/US2019/024809 WO2019191569A1 (en) 2018-03-30 2019-03-29 System and method for resource management and resource allocation in a self-optimizing network of heterogeneous processing nodes

Publications (1)

Publication Number Publication Date
BR112020020119A2 true BR112020020119A2 (pt) 2021-01-26

Family

ID=66440116

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112020020119-7A BR112020020119A2 (pt) 2018-03-30 2019-03-29 sistema e método para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos

Country Status (8)

Country Link
EP (1) EP3777047B1 (pt)
CN (1) CN112106327B (pt)
BR (1) BR112020020119A2 (pt)
DK (1) DK3777047T3 (pt)
ES (1) ES2935141T3 (pt)
FI (1) FI3777047T3 (pt)
MX (1) MX2020009779A (pt)
WO (1) WO2019191569A1 (pt)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110866167B (zh) * 2019-11-14 2022-09-20 北京知道创宇信息技术股份有限公司 任务分配方法、装置、服务器和存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0805393B1 (en) * 1996-04-30 2011-11-09 International Business Machines Corporation Method and apparatus for managing membership of a group of processors in a distributed computing environment
US7543020B2 (en) * 2005-02-10 2009-06-02 Cisco Technology, Inc. Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
US8244721B2 (en) * 2008-02-13 2012-08-14 Microsoft Corporation Using related users data to enhance web search
US20120254965A1 (en) * 2011-04-04 2012-10-04 Lansing Arthur Parker Method and system for secured distributed computing using devices
US9197733B2 (en) * 2012-02-21 2015-11-24 Blackberry Limited System and method for transferring data between electronic devices
US10187474B2 (en) * 2012-08-08 2019-01-22 Samsung Electronics Co., Ltd. Method and device for resource sharing between devices
US10454997B2 (en) * 2012-09-07 2019-10-22 Avigilon Corporation Distributed physical security system
US9819596B2 (en) * 2015-02-24 2017-11-14 Qualcomm Incorporated Efficient policy enforcement using network tokens for services C-plane approach
US10212596B2 (en) * 2015-06-05 2019-02-19 Apple Inc. System and method for migrating data between devices
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
JP6579884B2 (ja) * 2015-09-24 2019-09-25 キヤノン株式会社 通信装置、制御方法、及びプログラム
US9977697B2 (en) * 2016-04-15 2018-05-22 Google Llc Task management system for a modular electronic device
WO2017222763A2 (en) * 2016-05-31 2017-12-28 Vapor IO Inc. Autonomous distributed workload and infrastructure scheduling

Also Published As

Publication number Publication date
CN112106327B (zh) 2021-11-23
CN112106327A (zh) 2020-12-18
EP3777047A1 (en) 2021-02-17
FI3777047T3 (fi) 2023-01-13
DK3777047T3 (da) 2023-01-09
ES2935141T3 (es) 2023-03-01
EP3777047B1 (en) 2022-10-05
WO2019191569A1 (en) 2019-10-03
MX2020009779A (es) 2020-10-12

Similar Documents

Publication Publication Date Title
US10476985B1 (en) System and method for resource management and resource allocation in a self-optimizing network of heterogeneous processing nodes
US10541938B1 (en) Integration of distributed data processing platform with one or more distinct supporting platforms
KR101815148B1 (ko) 설정 가능한 컴퓨팅 자원 할당 기술
US9665387B2 (en) User-influenced placement of virtual machine instances
US9438665B1 (en) Scheduling and tracking control plane operations for distributed storage systems
US10146814B1 (en) Recommending provisioned throughput capacity for generating a secondary index for an online table
US20140337834A1 (en) User-Influenced Placement of Virtual Machine Instances
US10158709B1 (en) Identifying data store requests for asynchronous processing
US10135703B1 (en) Generating creation performance metrics for a secondary index of a table
US10013449B1 (en) Validating and non-validating secondary indexes for a table in a non-relational data store
CN110719320B (zh) 公有云配置调整信息的生成方法和设备
US20190227847A1 (en) Resource claim optimization for containers
JP2013137661A5 (pt)
US10747739B1 (en) Implicit checkpoint for generating a secondary index of a table
CN112513812A (zh) 使用区块链网络的任务完成
US10812341B1 (en) Scalable recursive computation across distributed data processing nodes
CN105426255B (zh) Hadoop大数据平台中基于网络I/O代价评估的ReduceTask数据本地性调度方法
US20140337833A1 (en) User-Influenced Placement of Virtual Machine Instances
US9350625B2 (en) Service consumption based on gamification level classification
CN110704851A (zh) 公有云数据处理方法和设备
BR112020020119A2 (pt) sistema e método para gerenciamento de recursos e alocação de recursos em uma rede de auto-otimização de nós de processamento heterogêneos
US20230029380A1 (en) System and method of multilateral computer resource reallocation and asset transaction migration and management
US11770302B2 (en) Assignments of IoT device types
US10924358B1 (en) Method and system for multivariate profile-based host operational state classification
KR20220069806A (ko) 5g 기반 iot 환경을 위한 지능형 트러스트 인에이블러 시스템

Legal Events

Date Code Title Description
B350 Update of information on the portal [chapter 15.35 patent gazette]