сетевая вычислительная система
Классы МПК: | G06F9/46 устройства для мультипрограммирования |
Автор(ы): | БЛОНДО Антуан (CN), ШЕЙЕ Адам (US), ХОДЖАТ Бабак (US), ХЭРРИГАН Питер (US) |
Патентообладатель(и): | ДЖЕНЕТИК ФАЙНАНС (БАРБАДОС) ЛИМИТЕД (BB) |
Приоритеты: |
подача заявки:
2008-11-07 публикация патента:
20.12.2013 |
Изобретение относится к области распределенных вычислений. Техническим результатом является обеспечение распределенной вычислительной мощности больших масштабов. Стоимость выполнения сложных анализов финансовых трендов с использованием программного обеспечения существенно снижается путем распределения вычислительной мощности, необходимой для выполнения анализа и вычислительной задачи, между большим числом сетевых отдельных или сгруппированных вычислительных узлов. Для этого вычислительная задача разделяется на множество подзадач. Каждая подзадача выполняется одним из устройств обработки информации для получения множества решений. Затем решения объединяются для получения решения вычислительной задачи. Лицам, под контролем которых находятся устройства обработки информации, выдается вознаграждение за использование ассоциированных с ними устройств обработки информации. Может обеспечиваться возможность изменения алгоритмов во времени. После этого осуществляется выбор одного или нескольких измененных алгоритмов в соответствии с заданным условием. 3 н. и 14 з.п. ф-лы, 4 ил.
Формула изобретения
1. Способ выполнения вычислительной задачи, в состав которой входит финансовый алгоритм под управлением инфраструктуры центральных серверов, причем способ включает:
формирование сети устройств обработки информации, каждое из которых работает под управлением одного из множества объектов, с которым оно ассоциировано;
выполнение каждым устройством обработки информации другой подзадачи вычислительной задачи для получения множества решений;
объединение инфраструктурой центральных серверов множества решений для получения решения вычислительной задачи;
определение величины вознаграждения для каждого из объектов в зависимости от индикатора активности ЦП, которая связана с выполнением подзадач устройствами обработки информации, ассоциированными с объектами; и
выдачу вознаграждений объектам в соответствии с величинами вознаграждений, причем вычислительная задача представляет собой финансовый алгоритм.
2. Способ по п.1, в котором по меньшей мере одно устройство обработки информации содержит группу центральных процессоров.
3. Способ по п.1, в котором по меньшей мере один из объектов получает денежное вознаграждение.
4. Способ по п.1, в котором по меньшей мере одно устройство обработки информации содержит центральный процессор и главное запоминающее устройство.
5. Способ по п.1, в котором решение вычислительной задачи представляет собой показатель степени эффективности с учетом рисков одного или нескольких активов.
6. Способ по п.1, в котором по меньшей мере один из объектов получает в качестве вознаграждения товары/услуги.
7. Сетевая вычислительная система, предназначенная для выполнения вычислительной задачи и содержащая инфраструктуру центральных серверов, причем в состав сетевой вычислительной системы входят:
модуль объединения множества решений, полученных при выполнении множества подзадач вычислительной задачи, для получения решения вычислительной задачи; и
модуль определения величины вознаграждения для каждого из объектов в зависимости от индикатора активности ЦП, которая связана с выполнением подзадач устройствами обработки информации, ассоциированными с объектами, причем вычислительная задача представляет собой финансовый алгоритм.
8. Сетевая вычислительная система по п.7, в которой по меньшей мере одно из множества решений вырабатывается группой центральных процессоров.
9. Сетевая вычислительная система по п.7, в которой вознаграждение представляет собой денежное вознаграждение.
10. Сетевая вычислительная система по п.7, в которой решение вычислительной задачи представляет собой показатель степени эффективности с учетом рисков одного или нескольких активов.
11. Сетевая вычислительная система по п.7, в которой вознаграждение по меньшей мере одному объекту выдается в форме товаров/услуг.
12. Способ по п.1, в котором на стадии определения применяется минимальное пороговое значение для активности ЦП, причем вознаграждение не выплачивается, если это пороговое значение не достигнуто.
13. Способ по п.1, в котором индикатор активности ЦП содержит число использованных циклов работы ЦП.
14. Способ по п.1, который дополнительно содержит следующие стадии:
получение каждым из устройств обработки информации из инфраструктуры центральных серверов минимальной величины уровня пригодности для решений, которые должны передаваться в инфраструктуру центральных процессоров; и
передачу в инфраструктуру центральных серверов только тех решений каждого из устройств обработки информации, уровни пригодности которых превышают минимальную величину уровня пригодности.
15. Сетевая вычислительная система по п.7, в которой при определении величины вознаграждения применяется минимальное пороговое значение для активности ЦП.
16. Сетевая вычислительная система по п.7, в которой индикатор активности ЦП содержит число использованных циклов работы ЦП.
17. Способ выполнения вычислительной задачи, в состав которой входит финансовый алгоритм под управлением инфраструктуры центральных серверов, включающий:
формирование сети устройств обработки информации, в которой разные устройства обработки информации работают под управлением разных объектов, с которыми они ассоциированы, причем стадия формирования включает обеспечение в каждом из устройств обработки информации исполняемой программы-клиента;
обеспечение инфраструктурой центральных серверов запуска каждого из устройств обработки информации для выполнения, с использованием программы-клиента, подзадачи вычислительной задачи, причем разные устройства обработки информации выполняют разные подзадачи, для получения множества решений;
объединение инфраструктурой центральных процессоров множества решений для получения решения вычислительной задачи;
определение величины вознаграждения для каждого из объектов в зависимости от индикатора активности ЦП, которая связана с выполнением подзадач устройствами обработки информации, ассоциированными с объектами; и
выдачу вознаграждений объектам в соответствии с величинами вознаграждений, причем вычислительная задача представляет собой финансовый алгоритм.
Описание изобретения к патенту
[0001] В настоящей заявке испрашивается конвенционный приоритет в соответствии с положением 119(е) 35 USC по временным заявкам США: US 60/986533, поданной 8 ноября 2007 г., под названием "Распределенная сеть для выполнения сложных алгоритмов" и US 60/075722, поданной 25 июня 2008 г., под названием "Распределенная сеть для выполнения сложных алгоритмов", содержание которых полностью вводится ссылкой в настоящую заявку.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0002] Сложные вычисления, обеспечивающие определение финансовых трендов и выполнение системного анализа, традиционно осуществляются на суперкомпьютерах, центральных компьютерах или мощных рабочих станциях, которые обычно защищены корпоративным сетевым экраном (брандмауэр) и которые принадлежат и эксплуатируются отделом информационных технологий компании. Затраты на соответствующие программные и аппаратные средства достаточно велики. Также высока стоимость технического обслуживания (ремонт аппаратуры и внесение исправлений в программы) и эксплуатации (электропитание, центры защиты данных) этой инфраструктуры.
[0003] Биржевые курсы, как правило, изменяются непредсказуемым образом, однако время от времени их поведение предсказуемо. Для разрешения проблем, связанных с продажами акций, используются так называемые генетические алгоритмы. Такие алгоритмы обычно заключаются в классификации акций. В соответствии с одной из теорий в любой заданный момент времени курсы 5% акций изменяются в соответствии с трендом. Поэтому генетические алгоритмы иногда с некоторым успехом используются для классификации акций, поведение которых следует тренду и поведение которых не соответствует тренду.
[0004] Эволюционные алгоритмы, представляющие собой расширенные множества генетических алгоритмов, хорошо проявляют себя при выполнении хаотического поиска. Как показал Koza J.R. в работе "Генетическое программирование: о программировании компьютеров с использованием алгоритма естественного отбора", 1992, MIT Press, эволюционный алгоритм может использоваться для получения описательных представлений завершенных программ. Основными элементами эволюционного алгоритма является среда, модель гена, функция приспособленности и функция воспроизводства. Среда может быть моделью постановки любой задачи. Ген можно определить как набор правил, которые определяют его поведение внутри среды. Правило представляет собой перечень условий, которые должны соблюдаться действием, осуществляемым в среде. Функция приспособленности может быть определена степенью успешности согласования развивающегося набора правил со средой. Поэтому функция приспособленности используется для оценки приспособленности к среде каждого гена. Функция воспроизводства обеспечивает получение новых генов путем смешивания правил наиболее приспособленных родительских генов. При каждой генерации создается новая популяция генов.
[0005] В начале эволюционного процесса гены, составляющие начальную популяцию, создаются совершенно случайным образом, путем складывания элементарных блоков алфавита, составляющих ген. В технике генетического программирования алфавит представляет собой набор условий и действий, составляющих правила, которым подчиняется поведение гена в среде. После получения популяции осуществляется ее оценка с помощью функции приспособленности. Затем гены с наибольшей приспособленностью используются для создания следующей генерации в процессе, который называется репродуцированием. Посредством репродуцирования правила родительских генов смешиваются и иногда мутируют (то есть в некотором правиле выполняется случайное изменение) для создания нового набора правил. Затем этот новый набор правил присваивается созданному гену, который будет членом новой генерации. В некоторых воплощениях наиболее приспособленные члены предыдущей генерации, называемые элитными членами, также копируются в следующую генерацию.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0006] В настоящем изобретением предлагается расширяемая эффективная вычислительная система и соответствующий способ для обеспечения современного средства биржевой торговли финансовыми инструментами. Это достигается путем объединения (i) современных алгоритмов искусственного интеллекта и машинного обучения, включая генетические алгоритмы и конструкции искусственной жизни, (ii) распределенной вычислительной модели с высокой степенью расширяемости и адаптации к выполняемым алгоритмам и (iii) уникальной вычислительной среды, которая обеспечивает распределенную вычислительную мощность беспрецедентных масштабов, причем при существенно сниженной стоимости вычислений.
[0007] Взаимодействие с объектами, предоставляющими вычислительные мощности, осуществляется разными способами. Масштабная вычислительная мощность, предоставляемая объектами, а также ее низкая стоимость дают возможность выполнения поиска решений по существенно более широкой области, чем это обеспечивают известные способы. Как известно, скорость поиска в обширном пространстве акций, показателей, торговых политик и других параметров важна, поскольку факторы, влияющие на успешность прогнозирования, изменяются во времени. Также чем выше вычислительная мощность, тем больше область, в которой можно выполнять поиск решений, в результате чего расширяются возможности нахождения лучших решений.
[0008] Для повышения коэффициента вирусного распространения (а именно коэффициента, определяющего скорость расширения предлагаемой в настоящем изобретении вычислительной сети и принятия ее владельцами (провайдерами) ЦП для присоединения к сети) провайдерам вычислительных мощностей выдается вознаграждение, или они поощряются иным образом за предоставление вычислительной мощности в пользование вычислительной системой в соответствии с изобретением, и, кроме того, им выдается дополнительное вознаграждение, или они поощряются иным образом за привлечение других лиц для участия в системе.
[0009] В соответствии с одним из аспектов настоящего изобретения соответствующее вознаграждение выдается провайдерам за использование вычислительных циклов их ЦП, динамических ЗУ и использование полосы пропускания их линий связи. Этот аспект взаимодействия с провайдерами в соответствии с некоторыми вариантами осуществления изобретения обеспечивает возможность осуществления "вирусного маркетинга". Провайдеры, узнав об уровне вознаграждения, которое может быть денежным или может иметь форму товаров/услуг, информации или в какой-либо иной форме, начинают обмениваться информацией со своими друзьями, коллегами, членами семьи и др. о возможном извлечении выгоды из их затрат на вычислительную инфраструктуру. В результате существенно увеличивается число провайдеров, присоединившихся к системе, что, в свою очередь, повышает вычислительную мощность и, соответственно, характеристики работы системы. Чем выше характеристики работы системы, тем больше ресурсов может быть выделено для целей рекрутинга и подсоединения к системе все большего количества провайдеров
[0010] В соответствии с некоторыми вариантами осуществления настоящего изобретения провайдерам могут быть предоставлены возможности обмена сообщениями и передачи информации мультимедиа, например регулярно передаваемые новости, экстренные сообщения, лента тикера с биржевыми котировками, форумы и чаты, видео и т.п.
[0011] Некоторые варианты осуществления настоящего изобретения могут действовать как катализатор создания рынка вычислительной мощности. Соответственно, часть вычислительной мощности, предоставляемой провайдерами в соответствии с вариантами осуществления изобретения, может быть предоставлена другим лицам, заинтересованным в доступе к такой мощности.
[0012] Для повышения интенсивности действия вирусного маркетинга и скорости реализации вариантов осуществления изобретения может использоваться система вознаграждений за привлечение новых участников системы. Например, в некоторых вариантах за привлечение друзей и знакомых предлагаются "виртуальные деньги". Виртуальные деньги могут быть использованы в форме благотворительных подарков или других информационных подарков по курсу, не превышающему обычного курса приобретения.
[0013] В настоящем изобретении предлагается способ выполнения вычислительной задачи, который в соответствии с одним из вариантов осуществления изобретения включает: формирование сети устройств обработки информации, каждое из которых работает под управлением одного из множества объектов, с которым оно ассоциировано; разделение вычислительной задачи на подзадачи; выполнение каждой из множества подзадач на разных устройствах обработки информации для получения множества решений; объединение множества решений для получения решения вычислительной задачи; и выдачу вознаграждения объектам за использование ассоциированных с ними устройств обработки информации.
[0014] В одном из вариантов осуществления изобретения вычислительная задача представляет собой алгоритм финансового анализа и принятия решений (далее "финансовый алгоритм"). В одном из вариантов по меньшей мере одно устройство обработки информации содержит группу центральных процессоров. В одном из вариантов по меньшей мере одному объекту вознаграждение выдается в денежной форме. В одном из вариантов по меньшей мере одно устройство обработки информации содержит центральный процессор и главное ЗУ. В одном из вариантов решение вычислительной задачи представляет собой показатель степени эффективности с учетом рисков одного или нескольких активов. В одном из вариантов по меньшей мере одному объекту вознаграждение выдается в форме товаров/услуг.
[0015] В настоящем изобретении предлагается способ выполнения вычислительной задачи, который в соответствии с одним из вариантов осуществления изобретения включает: формирование сети устройств обработки информации, каждое из которых работает под управлением одного из множества объектов, с которым оно ассоциировано; распределение множества алгоритмов случайным образом среди множества устройств обработки информации; обеспечение возможности изменения во времени множества алгоритмов; выбор одного или нескольких измененных алгоритмов в соответствии с заданным условием; и применение выбранного алгоритма для выполнения вычислительной задачи. Вычислительная задача представляет собой финансовый алгоритм.
[0016] В одном из вариантов осуществления настоящего изобретения объектам выдается вознаграждение за использование их устройств обработки информации. В одном из вариантов по меньшей мере одно устройство обработки информации содержит группу центральных процессоров. В одном из вариантов по меньшей мере одному объекту вознаграждение выдается в денежной форме. В одном из вариантов по меньшей мере одно устройство обработки информации содержит центральный процессор и главное ЗУ. В одном из вариантов по меньшей мере один алгоритм обеспечивает показатель степени эффективности с учетом рисков одного или нескольких активов. В одном из вариантов по меньшей мере одному объекту вознаграждение выдается в форме товаров/услуг.
[0017] В одном из вариантов осуществления настоящего изобретения предлагается сетевая компьютерная система, предназначенная для решения вычислительной задачи, которая содержит: модуль разделения вычислительной задачи на множество подзадач; модуль объединения множества решений, полученных при выполнении множества подзадач вычислительной задачи, для получения решения вычислительной задачи; и модуль поддержания уровня вознаграждения для множества объектов, формирующих множество решений. Вычислительная задача представляет собой финансовый алгоритм.
[0018] В одном из вариантов осуществления настоящего изобретения по меньшей мере одно решение формируется группой центральных процессоров. В одном из вариантов в вознаграждение представляет собой денежное вознаграждение. В одном из вариантов решение вычислительной задачи представляет собой показатель степени эффективности с учетом рисков одного или нескольких активов. В одном из вариантов по меньшей мере одному объекту вознаграждение выдается в форме товаров/услуг.
[0019] В одном из вариантов осуществления настоящего изобретения предлагается сетевая компьютерная система, предназначенная для решения вычислительной задачи, которая содержит: модуль распределения множества алгоритмов случайным образом среди множества устройств обработки информации, причем алгоритмы могут изменяться во времени; модуль выбора одного или нескольких измененных алгоритмов в соответствии с заданным условием; и модуль применения выбранных алгоритмов для выполнения вычислительной задачи. Вычислительная задача представляет собой финансовый алгоритм.
[0020] В одном из вариантов сетевая компьютерная система содержит дополнительно модуль, предназначенный для поддержания уровня вознаграждения для каждого устройства обработки информации. В одном из вариантов по меньшей мере одно устройство обработки информации содержит группу центральных процессоров. В одном из вариантов по меньшей мере одно вознаграждение выдается в денежной форме. В одном из вариантов по меньшей мере одно устройство обработки информации содержит центральный процессор и главное ЗУ. В одном из вариантов по меньшей мере один алгоритм обеспечивает показатель степени эффективности с учетом рисков одного или нескольких активов. В одном из вариантов по меньшей мере одно вознаграждение выдается в форме товаров/услуг.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0021] Фигура 1 - блок-схема высокого уровня сетевой вычислительной системы в соответствии с одним из вариантов осуществления настоящего изобретения;
[0022] фигура 2 - схема взаимодействий клиент-сервер в соответствии с одним из вариантов осуществления настоящего изобретения;
[0023] фигура 3 - блок-схема, на которой показаны компоненты и модули клиента и сервера фигуры 2;
[0024] фигура 4 - блок-схема каждого из устройств обработки информации, показанных на фигуре 1.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
[0025] В соответствии с одним из вариантов осуществления настоящего изобретения стоимость выполнения оценки финансовых трендов и сложного системного анализа существенно снижается за счет распределения вычислительной мощности, необходимой для указанного анализа, между большим количеством (тысячи, миллионы) отдельных или сгруппированных вычислительных узлов, расположенных по всему миру, в результате чего могут использоваться миллионы центральных процессоров (ЦП) или графических процессоров (ГП), подсоединенных к сети Интернет по широкополосным линиям. Хотя нижеприведенное описание дается со ссылками на ЦП, должно быть понятно, что варианты осуществления настоящего изобретения равным образом применимы к ГП.
[0026] Используемые термины:
- "система" - относится к системе аппаратных средств, к системе программных средств или к комбинированной системе аппаратных и программных средств;
- "провайдер" - может включать физическое лицо, компанию или организацию, которые согласились присоединиться к распределенной сетевой вычислительной системе в соответствии с настоящим изобретением и которые владеют, эксплуатируют, управляют или иным образом осуществляют контроль одного или нескольких ЦП;
- "сеть" - формируется из нескольких элементов, включая центральную (начальную или конечную) вычислительную инфраструктуру и любое количество N провайдеров, причем каждый провайдер связан с одним или с несколькими узлами, каждый из которых может иметь любое количество устройств обработки информации, содержащих по меньшей мере один ЦП и/или главное запоминающее устройство, такое как, например, динамическое ОЗУ;
- "ЦП" - настраивается таким образом, чтобы он поддерживал один или несколько узлов для формирования части сети, причем узел представляет собой элемент сети, предназначенный для выполнения вычислительных задач, и каждый отдельный узел может быть однопроцессорной или многопроцессорной (многоядерной) системой;
- "широкополосное соединение" - определяется как соединение с высокой скоростью передачи данных с использованием кабеля, DSL, беспроводных WiFi, 3G, 4G, или любого другого вида проводного или беспроводного соединения, которое существует или может быть разработано в будущем и предназначено для подсоединения ЦП к Интернету и соединения ЦП друг с другом.
[0027] На фигуре 1 представлена блок-схема высокого уровня сетевой вычислительной системы 100 в соответствии с одним из вариантов осуществления настоящего изобретения. Как можно видеть, в этом примере сетевая вычислительная система 100 содержит четырех провайдеров 120, 140, 160, 180 и инфраструктуру 200 центральных серверов (ЦС). Провайдер 120 показан содержащим группу ЦП, обеспечивающих работу нескольких узлов, принадлежащих провайдеру 120, осуществляющему их работу, техническое обслуживание, управление и любой иной контроль их работы. Эта группа включает устройства 122, 124 и 126 обработки информации. В этом примере устройство 122 обработки информации показано в форме ноутбука, и устройства 124 и 126 показаны в форме настольных компьютеров. Аналогично, провайдер 140 показан содержащим группу ЦП, размещенных в устройстве 142 обработки информации (ноутбук) и устройстве 144 обработки информации (карманное устройство связи/обработки данных) и обеспечивающих работу нескольких узлов, принадлежащих провайдеру 140, осуществляющему их работу, техническое обслуживание, управление и любой иной контроль их работы.
Провайдер 160 показан содержащим ЦП, который размещен в устройстве 162 обработки информации (ноутбук), и провайдер 180 показан содержащим ЦП, который размещен в устройстве 182 обработки информации (носимое устройство мобильной связи или устройство интернет-телефонии). Понятно, что сетевая вычислительная система в соответствии с настоящим изобретением может содержать любое число N провайдеров, каждый из которых связан с одним или несколькими узлами, в состав которых может входить любое количество устройств обработки информации. Каждое устройство обработки информации содержит по меньшей мере один ЦП и/или главное запоминающее устройство, такое как, например, динамическое ОЗУ.
[0028] Провайдеры соединяются с инфраструктурой 200 ЦС по широкополосным линиям связи для выполнения вычислительных операций в соответствии с настоящим изобретением. Такие соединения могут выполняться с использованием кабеля, DSL, беспроводных линий WiFi, 3G, 4G или любого другого вида проводной или беспроводной связи, который существует или может быть разработан в будущем и предназначен для подсоединения ЦП к Интернету. В некоторых вариантах также могут обеспечиваться соединения между узлами для обмена информацией между ними, как показано на фигуре 1. Провайдеры 140, 160 и 180, показанные на фигуре 1, могут обмениваться информацией непосредственно друг с другом. Может использоваться любой ЦП, если программное обеспечение клиента (программа-клиент) в соответствии с настоящим изобретением может выполняться на этом ЦП. В некоторых вариантах программное обеспечение клиента обеспечивает команды для многопроцессорного оборудования и использует запоминающие устройства, имеющиеся в таком оборудовании.
[0029] В одном из вариантов сетевая вычислительная система 100 обеспечивает выполнение алгоритмов финансового анализа и определяет торговые политики. Для этого вычислительная задача, связанная с такими алгоритмами, разделяется на множество подзадач, каждая из которых назначается и передается разным узлам. Затем результаты вычислений, полученные узлами, собираются и объединяются инфраструктурой 200 ЦС для получения решения всей задачи. Подзадача, полученная каждым узлом, может включать соответствующий алгоритм или коды вычислений, данные, которые должны обрабатываться алгоритмом, и одну или несколько задач, которые должны быть решены с использованием этого алгоритма и данных. В таких вариантах инфраструктура 200 ЦС принимает и объединяет частичные решения, поступающие из ЦП, находящихся в узлах, для получения решения вычислительной задачи, как это будет описано ниже. Если вычислительная задача, выполняемая сетевой вычислительной системой 100, содержит финансовые алгоритмы, то конечный результат, получаемый в результате объединения частичных решений, полученных от узлов, может содержать рекомендацию по торговле одним или несколькими активами.
[0030] Масштабирование эволюционного алгоритма может быть выполнено в двух измерениях, а именно по размеру пула и/или по оценке. В эволюционном алгоритме чем больше пул или популяция генов, тем больше вариабельность по области поиска решения. Это означает, что вероятность нахождения более приспособленных генов возрастает. Для этого пул может быть распределен между многими обрабатывающими клиентами. Каждый процессор оценивает свой пул генов и передает в сервер наиболее приспособленные гены, как это будет описано ниже.
[0031] В соответствии с одним из вариантов осуществления настоящего изобретения финансовый выигрыш обеспечивается путем исполнения политики продаж, предложенной выигрывавшим алгоритмом, связанным с выигравшим узлом и в соответствии с нормативными требованиями. Гены или объекты в алгоритмах, таких как генетические алгоритмы или алгоритм AI, описанный ниже, реализованные в таких вариантах, могут быть структурированы таким образом, чтобы они конкурировали за лучшее возможное решение и обеспечивали достижение наилучших результатов. В этих алгоритмах каждый провайдер, например провайдеры 120, 140, 160 и 180 фигуры 1, получает выбранный случайным образом полный алгоритм (программные коды) для выполнения вычислений и один или несколько идентификаторов ID узла. В одном из вариантов осуществления изобретения каждый провайдер также имеет возможность добавлять со временем свои знания и решения к ассоциированному с ним алгоритму. Алгоритмы могут развиваться, и некоторые из них могут оказываться более успешными по сравнению с другими алгоритмами. Иначе говоря, со временем один или несколько алгоритмов (назначенных первоначально случайным образом) будут развиваться, приобретая более высокий "интеллектуальный" уровень по сравнению с другими алгоритмами, и становиться выигравшими алгоритмами, которые могут использоваться для исполнения рекомендаций по продажам/покупкам. Узлы, на которых размещаются выигравшие алгоритмы, указываются как выигравшие узлы. Идентификатор ID узла используется для прослеживания выигравших алгоритмов до их узлов для идентификации выигравших узлов. Инфраструктура 200 ЦС может структурировать алгоритм путем выбора наилучшего алгоритма или путем объединения частичных алгоритмов, полученных от нескольких ЦП. Структурированный алгоритм может полностью определяться выигравшим алгоритмом или сочетанием частичных алгоритмов, сгенерированных несколькими узлами или ЦП. Структурированный алгоритм используется для осуществления продаж/покупок.
[0032] В некоторых вариантах осуществления изобретения, как показано на фигуре 2, используется контур обратной связи для передачи в ЦП обновляемой информации о том, насколько успешно развиваются их алгоритмы. Это могут быть алгоритмы, которые получены этими ЦП, или алгоритмы по активам, которые представляют интерес для соответствующих провайдеров. Это аналогично окну для улучшения компонентов алгоритма во времени, в котором передается такая информация как число провайдеров, выполняющих алгоритм, число выполненных генераций и т.п. Это представляет дополнительную мотивацию для провайдеров, чтобы они делились своими вычислительными мощностями, так как в результате они получают опыт участия в коллективном проекте.
[0033] В некоторых вариантах осуществления изобретения алгоритм, осуществляемый отдельными ЦП или сетевой вычислительной системой в соответствии с настоящим изобретением, обеспечивает оценку результативности актива или группы активов с учетом рисков, причем такая оценка обычно указывается в литературе по финансовым вопросам как показатель эффективности актива или группы активов (показатель альфа). Этот показатель альфа обычно получают путем регрессии актива, например, по повышенной доходности страхового или инвестиционного фонда в соответствии с показателями повышенной доходности по индексу S&P 500. Другой параметр (бета), известный как показатель чувствительности акций относительно движения остального рынка, используется для получения поправки на риск (угловой коэффициент).
[0034] Например, пусть инвестиционный фонд имеет прибыль 25% и краткосрочная процентная ставка составляет 5% (повышенная доходность 20%). Предположим, что в течение того же периода времени повышенная доходность по рынку составила 9%. Далее, пусть показатель бета инвестиционного фонда равен 2,0. Иначе говоря, степень риска инвестиционного фонда в два раза выше показателя S&P 500. Расчетная повышенная доходность с учетом риска равна 2×9%=18%. Фактическая величина повышенной доходности составила 20%. Отсюда, показатель эффективности составляет 2% или 200 базисных пунктов. Показатель эффективности известен также как индекс Дженсена и определяется следующим выражением:
где
n= число наблюдений (например, 36 месяцев);
b= показатель бета для фонда;
х= норма доходности по рынку;
у= норма доходности для фонда.
[0035] Для определения трендов и выполнения анализа используются алгоритмы искусственного интеллекта (А1) или алгоритмы машинного обучения. Примеры алгоритмов А1 включают классификаторы, экспертные системы, алгоритмы получения выводов, основанные на прецедентах, байесовские сети, алгоритмы А1, работающие на основе поведения, нейронные сети, системы с нечеткой логикой, эволюционные вычислительные алгоритмы и гибридные интеллектуальные системы. Краткое описание указанных алгоритмов приведено в Википедии, и ниже даются соответствующие пояснения.
[0036] Классификаторы представляют собой функции, которые могут настраиваться в соответствии с примерами. Имеется большое число классификаторов, которые имеют как сильные, так и слабые стороны. Большая часть широко используемых классификаторов - это нейронные сети, алгоритмы, реализующие метод опорных векторов, алгоритмы ближайших k-соседей, смешанные модели Гауссовского типа, упрощенные Байесовские классификаторы и деревья принятия решений. В экспертных системах для получения выводов используется логика. Экспертные системы обладают возможностью обработки больших объемов известной информации и получения выводов на основе этой информации.
[0037] В системах получения выводов на основе прецедентов хранятся наборы задач и ответов в форме структур организованных данных, называемых прецедентами. После ввода задачи в систему получения выводов на основе прецедентов она находит прецедент в своей базе знаний, который наиболее близок новой задаче, и выводит его решения с модификациями, подходящими для новой задачи. Системы, работающие на основе поведения, формируются вручную и представляют собой набор модулей. Нейронные сети представляют собой обучаемые системы с очень высокими способностями распознавания образов.
[0038] Системы с нечеткой логикой обеспечивают получение выводов в условиях неопределенности и широко используются в современных системах управления в промышленном и потребительском секторах. В эволюционных вычислительных алгоритмах используются такие понятия биологического развития, как популяции, мутации и выживание наиболее приспособленных особей для получения постепенно улучшающихся решений задачи. В этих способах наблюдается четкое разделение на эволюционные алгоритмы (например, генетические алгоритмы) и алгоритмы поведения роя (например, алгоритмы развития муравейника). Гибридные интеллектуальные системы представляют собой любые сочетания вышеупомянутых алгоритмов. Необходимо понимать, что могут использоваться и другие алгоритмы, в том числе и не относящиеся к категории А1.
[0039] Для обеспечения такого распределения с одновременной защитой финансовых данных, которыми обмениваются узлы, связанные с провайдерами, описанными ниже, а также целостности выигравшей модели, которая будет описана ниже, ни один узел не должен знать: (i) имеет ли он дело с определением полного тренда/модели или только части и (ii) используется ли системой результат вычислительной работы узла для определения политики финансовых продаж/покупок и для исполнения такой политики.
[0040] Выполнение алгоритма отделяется от исполнения приказов на продажу/покупку. Решения на продажу/покупку и соответствующие приказы принимаются одним или несколькими центральными серверами или оконечными серверами, в зависимости от того, организована ли инфраструктура по схеме клиент-сервер или по схеме пиринговой (одноранговой) сети. Решения на продажу/покупку узлами провайдеров не принимаются. Понятие провайдера, указываемого также в настоящем описании как владелец узла или узла, описанного ниже, относится к физическому лицу, компании или организации, которые согласились присоединиться к распределенной сети в соответствии с настоящим изобретением и которые владеют, эксплуатируют, управляют или иным образом осуществляют контроль одного или нескольких ЦП. Таким образом, провайдеры рассматриваются как субподрядчики, и юридически, и финансово никоим образом не отвечают за какие-либо торговые сделки.
[0041] Провайдеры в соответствии с настоящим изобретением добровольно предоставляют вычислительную мощность своих ЦП и обеспечивают ее доступность, а также свои запоминающие устройства путем подписания документа, который называется в настоящем описании "Лицензионное соглашение провайдера" (ЛСП), определяющего условия их участия. ЛСП в соответствии с настоящим изобретением устанавливает минимальные требования, на которых провайдер соглашается поделиться мощностью своих ЦП, и содержит положения, касающиеся конфиденциальности и ответственности. В ЛСП устанавливается, что ассоциированный провайдер не является конечным пользователем и не получает выгоду от результатов выполнения вычислительной работы его ЦП. В ЛСП также устанавливаются условия, которым должны соответствовать провайдеры, чтобы получать вознаграждение за сдачу в прокат своей вычислительной инфраструктуры.
[0042] Провайдеры получают вознаграждение за обеспечение доступности для предлагаемой в настоящем изобретении сетевой системы мощности своих ЦП и запоминающих устройств. Вознаграждение может выплачиваться регулярно (например, каждый месяц) или нерегулярно, причем оно может быть постоянным или переменным и зависит от минимальной пороговой величины доступности/использования, что может быть измерено с использованием механизма запросов (определение доступности) или рассчитано в использованных циклах ЦП (определение использования), или же используется любой другой возможный индикатор активности ЦП. В одном из вариантов осуществления изобретения вознаграждение не выплачивается, если пороговая величина доступности/использования не достигается. Это стимулирует провайдеров: (i) поддерживать включенным широкополосное соединение с доступным ЦП на регулярной основе и/или (ii) не использовать имеющейся мощности своих ЦП для решения других задач. Более того, величина выплачиваемого вознаграждения может зависеть от числа ЦП для поощрения увеличения провайдерами числа ЦП, которые они делают доступным для целей настоящего изобретения. Провайдерам, обеспечивающим группы ЦП для целей настоящего изобретения, могут выплачиваться дополнительные бонусы. Другие формы неденежного вознаграждения или схемы поощрения могут использоваться независимо от схем денежного вознаграждения или в сочетании с ними (описывается ниже).
[0043] После регистрации и подсоединения к сетевой системе в соответствии с настоящим изобретением провайдеры загружают программное обеспечение клиента, подходящее для типа и характеристик их ЦП, и осуществляют настройку при установке программного обеспечения. Программное обеспечение клиента обеспечивает простое визуальное представление услуги, такое как, например, заставка экрана. Это представление показывает провайдерам количество денег, которое они могут получить за каждый период. Такое представление может иметь, например, форму монет, падающих в кассовый аппарат. Визуальные эффекты наглядно показывают выгоды присоединения к сетевой системе в соответствии с настоящим изобретением. Поскольку программное обеспечение работает в фоновом режиме, то оно не оказывает заметного влияния на характеристики работы компьютеров по выполнению задач провайдеров.
[0044] Программное обеспечение клиента может регулярно обновляться для повышения эффективности взаимодействия с ассоциированным провайдером. Для этого в одном из вариантов осуществления изобретения в программном обеспечении клиента используется модуль базы знаний, который просит отдельных лиц, например, сделать прогноз рынка и использует объединенные прогнозы в качестве одного или нескольких аспектов алгоритма обучения в соответствии с настоящим изобретением.
[0045] Для повышения эффективности взаимодействия провайдерам может быть предложена возможность выбора активов, таких как, например, финансовые средства, сырьевые товары, акции, валюты и т.п., которые они хотели бы анализировать на своих ЦП. Такой выбор может осуществляться совершенно свободно или же из списка активов, направляемого провайдерам.
[0046] В одном из вариантов осуществления изобретения программное обеспечение клиента периодически обновляется новостями об одном или нескольких активах, включая новости компании, диаграммы биржевых курсов и т.п. Эффект оптимистического настроения, создаваемого у провайдеров такой презентацией, важен, особенно для провайдеров, которые не очень хорошо разбираются в вопросах инвестиций. Загрузив программное обеспечение в соответствии с настоящим изобретением и выбрав, например, несколько наименований акций, которые их интересуют, провайдеры могут чувствовать себя причастными к миру финансов. Экранная заставка на темы финансов, имеющая довольно замысловатый вид, в соответствии с настоящим изобретением разработана для усиления впечатления вовлеченности провайдеров в мир финансов, создания эффекта ореола, который служит для продвижения идеи вирусного маркетинга в соответствии с настоящим изобретением.
[0047] Провайдеры, как только они начинают получать деньги или получать удовлетворение от поощрения в соответствии с настоящим изобретением, станут обмениваться информацией с друзьями, коллегами по работе, членами семьи и т.п. о возможности заработать деньги или поощрительные баллы в результате инвестиций в вычислительную инфраструктуру. В результате существенно увеличивается число узлов, подсоединившихся к системе, что, в свою очередь, повышает вычислительную мощность и, соответственно, характеристики работы системы. Чем выше характеристики работы системы, тем больше можно потратить на привлечение и подключение все большего числа провайдеров.
[0048] В некоторых вариантах осуществления изобретения используется дополнительное поощрение для повышения интенсивности роста числа провайдеров и действия фактора вирусного маркетинга в соответствии с настоящим изобретением, как это описывается ниже. Например, в одном из вариантов осуществления изобретения используется система вознаграждения за привлечение провайдеров, в соответствии с которой действующим провайдерам выплачивается вознаграждение за привлечение новых провайдеров. Провайдеры также могут быть отобраны для участия в регулярно проводимой лотерее, причем каждый провайдер, у которого мощность ЦП, используемая в системе, за определенный период превышает минимальное пороговое значение, включается для участия в лотерее. Провайдеру, выигравшему в лотерее, может выплачиваться выигрыш в денежной или в какой-либо другой форме. Другими формами премии (помимо выигрыша в лотерее) могут быть, например: i) отслеживание показателей работы алгоритма и премирование провайдера, владеющего выигравшим узлом, то есть узлом, на котором, как определено, в течение определенного периода времени работает алгоритм, обеспечивающий наибольшую доходность, то есть выигравший алгоритм; ii) отслеживание подгрупп выигравшего алгоритма, присвоение каждой из таких подгрупп идентификатора ID, идентифицирующего выигравший узел, и премирование всех провайдеров, чьи идентификаторы ID подгрупп алгоритма, сгенерированного компьютером, находятся в выигравшем алгоритме; и iii) отслеживание и премирование ЦП с наиболее высоким уровнем доступности в течение определенного периода.
[0049] В некоторых вариантах осуществления изобретения используется дополнительное поощрение, когда отдельные провайдеры присоединяются к системе вместе с другими членами, формируя "команды провайдеров", что может затем повысить их шансы на выигрыш имеющихся призов. В других вариантах осуществления изобретения может использоваться схема, в которой основой для получения бонуса является правильный прогноз или наилучший прогноз среди множества полученных прогнозов.
[0050] Для минимизации работ по обработке информации, относящейся к провайдерам, для каждого провайдера открывается виртуальный счет. На каждый такой счет регулярно, например каждый месяц, перечисляется вышеупомянутое вознаграждение, выплачиваемое провайдеру. Денежные средства, зачисляемые на такой виртуальный счет, не будут преобразовываться в реальные денежные средства, пока провайдер не оформит требование о переводе денег на его физический счет.
[0051] Провайдерам могут выдаваться и другие формы вознаграждения за предоставление их ЦП в совместное использование. Например, провайдерам вместо денег могут быть предложены рекомендации по продажам/покупкам. Такие рекомендации могут содержать указания на срочную продажу/покупку определенных акций или других активов. При условии безусловного соблюдения требований законодательства рекомендации по продажам/покупкам могут даваться, например, на случайной основе или в отношении списка активов, которыми компания, использующая настоящее изобретение, не торгует или не собирается торговать. Такие рекомендации по продажам/покупкам также могут быть даны в отношении активов, которыми провайдеры владеют, единолично или в составе группы, или выражают интерес в них, как это было указано выше. В некоторых вариантах осуществления изобретения предусматривается взимание платы за обслуживание счетов провайдеров для оплаты операций провайдеров, связанных со счетами.
[0052] Наличие программного обеспечения клиента на ЦП провайдера обеспечивает возможности размещения рекламы (реклама для провайдеров), которые могут быть использованы производителями товаров и рекламодателями. Может быть обеспечена высокая степень нацеленности рекламы, поскольку получены сведения, касающиеся области интересов провайдеров, например, в части типов активов, конкретных компаний, ценных бумаг и т.п. Кроме того, программное обеспечение клиента обеспечивает возможности передачи сообщений и информации мультимедиа, например вещательная передача новостей, экстренных сообщений, RSS, бегущих строк, форумов и чатов, видеороликов и т.п. Все такие услуги могут предоставляться за плату, снимаемую непосредственно со счета провайдера. Такая функциональность может обеспечиваться интерфейсными прикладными программами, используемыми вместо экранной заставки, в том числе соответствующими стандартными программами, исполняемыми в фоновом режиме.
[0053] Указания на продажу/покупку могут продаваться провайдерам, а также другим лицам, как физическим, так и юридическим, естественно, с соблюдением законов и других нормативных документов. Указания на продажу/покупку вырабатываются на основе работы по анализу и определению трендов, выполняемой в соответствии с настоящим изобретением. Программное обеспечение клиента может быть доработано на индивидуальной основе для передачи таких указаний оптимальным образом. Начисления за услуги могут быть учтены непосредственно в счетах провайдеров. Например, провайдер может получать информацию, касающуюся установленного количества акций в месяц, за согласованную помесячную оплату.
[0054] Прикладные программные интерфейсы, а также их компоненты и инструменты могут быть также предоставлены третьим сторонам, участникам рынка, например менеджерам инвестиционных фондов и фондов хеджирования, для извлечения выгоды из тех достоинств, которыми обладает настоящее изобретение. Такие третьи стороны могут, например: (i) совершать продажи/покупки в соответствии с моделью, обеспечиваемой настоящим изобретением; (ii) создавать свои собственные модели продаж/покупок, используя программное обеспечение, аппаратные средства и инфраструктуру обработки информации, обеспечиваемую настоящим изобретением, и, в свою очередь, делиться такими моделями, в том числе за плату, с другими финансовыми организациями. Например, инвестиционный банк может арендовать Х миллионов вычислительных циклов и набор из Y стандартных программ на время Z часов у некоторого лица, используя настоящее изобретение, за W долларов для определения текущих трендов и долгосрочных тенденций движения цен, например фьючерсов на нефть. В этом случае настоящее изобретение обеспечивает инструмент определения исчерпывающей политики продаж и покупок, а также платформу для выполнения этой политики с использованием уникальной мощной архитектуры анализа трендов и долгосрочных тенденций.
[0055] Счета провайдеров также могут быть использованы в качестве счетов для ведения торговых операций или в качестве источника средств для открытия счетов в одной или нескольких онлайновых брокерских фирм. Таким образом, может собираться плата за привлечение клиентов с онлайновых брокерских фирм за то, что им предоставляется база данных клиентов. Инфраструктура (программные и аппаратные средства), прикладные программные интерфейсы и инструменты, используемые в соответствии с настоящим изобретением, могут быть также расширены для решения сходных сложных задач в других областях, таких как генетика, химические технологии, экономика, анализы сценариев развития событий, анализ поведения потребителей, анализ климата и погоды, оборона и разведка и др.
Конфигурация клиент-сервер
[0056] Сеть в соответствии с одним из вариантов осуществления настоящего изобретения включает по меньшей мере пять элементов, три из которых (i, ii и iii, указанные ниже) обеспечивают выполнение программного обеспечения в соответствии с различными вариантами осуществления настоящего изобретения. Сеть содержит следующие пять элементов: (i) инфраструктура центральных серверов (ЦС), (ii) пульт управления, (iii) узлы сети, (iv) платформа выполнения (часть которой обычно принадлежит главному брокеру) и (v) серверы данных, которые обычно принадлежат главному брокеру или провайдеру финансовой информации.
[0057] Как показано на фигуре 3, инфраструктура 200 ЦС содержит один или несколько серверов вычислительной сети. Инфраструктура 200 ЦС сконфигурирована таким образом, что она обеспечивает организацию вычислительной работы узлов и управление ими. Эта роль инфраструктуры 200 ЦС как "контрольно-диспетчерского пункта" понимается с точки зрения управления вычислительным процессом, то есть какие узлы осуществляют вычисления, в каком порядке, а также какой тип задачи решается и какие данные при этом используются. Действия инфраструктуры 200 ЦС также понимаются с точки зрения определения решаемой задачи и получения ее решения, то есть форматирование вычислительных задач, которые должны решаться узлами, оценка результатов вычислений, выполненных узлами, в сравнении с определенной пороговой величиной показателя работы, и принятие решения о продолжении вычислений или прекращении, если полученные результаты представляются вполне приемлемыми.
[0058] Инфраструктура 200 ЦС может включать сервер документирования (не показан) работы системы, предназначенный для получения информации о работе узлов или для регулярного опроса узлов для анализа информации о вычислительных возможностях сети и для управления этими возможностями. Инфраструктура 200 ЦС также имеет доступ к источникам 102, 104 и 106 данных и к другим внешним источникам данных для получения соответствующей информации, то есть информации, необходимой для решения рассматриваемой задачи. Объединение задачи и данных может осуществляться инфраструктурой 200 ЦС. Однако узлы конфигурируются таким образом, чтобы они также и самостоятельно собирали информацию, в той степени, насколько это правомерно и возможно с практической точки зрения, как это описано ниже.
[0059] Хотя инфраструктура 200 ЦС показана в этом варианте как один блок и как одна функциональная единица, однако в некоторых вариантах она может быть распределенным процессором. Кроме того, инфраструктура 200 ЦС также может быть частью иерархической объединенной топологической структуры, в которой она может быть в роли узла (описано ниже), подключаемого в качестве клиента к "родительской" инфраструктуре.
[0060] В соответствии с некоторыми вариантами осуществления изобретения, например, при использовании генетического алгоритма инфраструктура ЦС может быть устроена как многоуровневая система, которую можно описать как объединенную архитектуру "клиент-сервер". В таких вариантах инфраструктура ЦС поддерживает наиболее законченные результаты генетического алгоритма. Второй компонент, который включает ряд узлов, назначается для выполнения генетического алгоритма и создания "генов", как будет описано ниже. Третий компонент осуществляет оценку генов. Для этого третий компонент получает сформированные и обученные гены из второго уровня и оценивает их на частях области решений. Затем эти оценки объединяются на втором уровне, сравниваются с набором пороговых величин, заданных на данный момент времени минимальным уровнем показателя работы, полученным генами, сохраняемыми в инфраструктуре ЦС. Гены, успешно прошедшие сравнение с пороговой величиной (или ее частью), передаются в инфраструктуру ЦС третьим уровнем системы. В таких вариантах инфраструктура ЦС освобождается от выполнения оценки, описанной ниже в операции 12, и обеспечивается более эффективная работа системы.
[0061] Многоуровневая система в соответствии с настоящим изобретением обладает рядом достоинств и преимуществ. Во-первых, повышается универсальность обмена информацией между клиентом и сервером, поскольку имеется несколько промежуточных серверов, которые, в свою очередь, обеспечивают возможность увеличения числа узлов. Во-вторых, различные уровни фильтрации результатов на объединенных серверах перед передачей этих результатов в главный сервер позволяют снизить нагрузку на центральный сервер. Иначе говоря, поскольку узлы (клиенты) обмениваются информацией со своими локальными серверами, которые, в свою очередь, обмениваются информацией с центральным сервером, нагрузка на центральный сервер снижается. В-третьих, любая заданная задача может быть назначена определенному сегменту сети. В результате выбранные части сети могут быть назначены для управления вычислительной мощностью, выделяемой для решаемой задачи. Понятно, что в таких вариантах может использоваться любое число уровней.
Пульт управления
[0062] Пульт управления является интерфейсом "человек-машина", который необходим для обеспечения взаимодействия операторов с предлагаемой в настоящем изобретении системой. Используя пульт 220 управления, оператор может ввести определяющие элементы конкретной задачи, которая должна быть решена с использованием алгоритмов, выбрать тип алгоритма, который должен использоваться, или задать комбинацию алгоритмов. Оператор может задать размер сети, в частности количество узлов, которые резервируются для данной вычислительной задачи. Оператор может ввести цели, а также пороговые величины показателей работы алгоритмов. Оператор в любой момент времени может вывести на монитор результаты вычислений, произвести анализ этих результатов с использованием различных инструментов, скомпоновать полученную политику продаж/покупок, а также проводить моделирование операций продаж/покупок. Пульт управления также служит для контроля загрузки сети, отслеживания неисправностей и переключения на резервные мощности. Пульт управления также обеспечивает информацию о мощностях, имеющихся в любой момент времени, предупреждает о неисправностях сети, о проблемах, связанных с перегрузкой и с недостаточной производительностью, о проблемах, связанных с безопасностью, и документирует информацию о решенных вычислительных задачах. Пульт 220 управления взаимодействует с платформой 300 выполнения, предназначенной для выполнения политики продаж/покупок. Компоновка политики продаж/покупок и ее выполнение могут осуществляться в автоматическом режиме без вмешательства оператора, или же оператор осуществляет анализ и утверждение выработанных решений (автоматизированный режим). Пульт управления дает возможность оператору выбрать тот или иной из вышеуказанных режимов.
Узлы сети
[0063] Узлы сети выполняют вычислительную работу по решению поставленной задачи. Пять таких узлов 1, 2, 3, 4 и 5 показаны на фигуре 2. Узлы передают результаты своих вычислений в инфраструктуру 200 ЦС. Такие результаты могут включать измененные алгоритмы, которые могут быть частичными или полными, и данные, представляющие собой результаты работы этих алгоритмов. Узлы, если это допускается действующим законодательством и может быть осуществлено практически, могут также иметь доступ к источникам 102, 104, 106 данных и другим внешним источникам данных для получения информации, имеющей отношение к решаемой ими задаче. По мере развития предлагаемой в изобретении системы узлы будут развиваться в направлении расширения их функциональности в части взаимодействия с системой, в результате чего провайдеры смогут вводить интересующие их активы, мнения о финансовых трендах и т.п.
Платформа выполнения
[0064] Платформа выполнения обычно является компонентом, работа которого осуществляется третьими лицами. Платформа 300 выполнения получает политики продаж/покупок, переданные пультом 220 управления, и выполняет требуемые действия, связанные, например, с финансовыми рынками, такими как New York Stock Exchange, Nasdaq, Chicago Mercantile Exchange и др. Платформа выполнения преобразует инструкции, полученные из пульта 220 управления, в приказы на продажи/покупки, осуществляет контроль выполнения этих приказов и сообщает в пульт 220 управления и в другие органы оперативного учета и управления системы о завершении выполнения каждого приказа, включая особенности приказа, такие как цена, размер сделки, другие ограничения или условия, действующие при выполнении приказа.
Серверы данных
[0065] Серверы данных также, как правило, являются компонентами системы, работа которых осуществляется третьими лицами. Серверы данных, такие как серверы 102, 104, 106, обеспечивают текущую финансовую информацию и информацию документирования за предыдущие периоды времени по широкому кругу торгуемых активов, таких как акции, бонды, сырьевые товары, валюты и производные инструменты, такие как опционы, фьючерсы и др. Они могут непосредственно взаимодействовать с инфраструктурой 200 ЦС или с узлами. Серверы данных могут также обеспечивать доступ к широкому кругу аналитических инструментов, таких как финансовые показатели (MACD, полосы Боллинджера, ADX, RSI и др.), которые могут использоваться алгоритмами как "условия" или "прогнозы" при обработке информации. С помощью подходящих прикладных программных интерфейсов серверы данных обеспечивают алгоритмы возможностью изменять параметры аналитических инструментов, чтобы расширить диапазон условий и прогнозов и, соответственно, увеличить размеры области поиска алгоритма. Такие технические показатели могут также быть рассчитаны системой на основе финансовой информации, полученной через серверы данных. Серверы данных также могут содержать неструктурированную или качественную информацию, которая может быть использована алгоритмами, так что система будет иметь возможность учитывать в области поиска как структурированную, так и неструктурированную информацию.
Конфигурация "клиент-сервер" - блок-схема потоков данных и процессов
[0066] Ниже описывается примерная блок-схема потоков данных и процессов в соответствии с одним из вариантов осуществления настоящего изобретения. Различные операции, описываемые ниже, указываются со ссылками на фигуру 2. Стрелки и связанные с ними операции указываются с использованием одних и тех же ссылочных номеров.
Операция 1
[0067] Оператор с помощью пульта управления задает область задачи и один или несколько алгоритмов для решения этой задачи. Оператор с помощью пульта управления задает для инфраструктуры 200 ЦС следующие параметры, связанные с операцией 1:
[0068] ЦЕЛИ: Цели определяют тип политики продаж/покупок, которая может быть получена в результате обработки информации, и при необходимости или если это приемлемо, задают пороговую величину показателя работы алгоритма. Может быть приведен следующий пример. Полученная политика продаж/покупок может содержать указания "покупать", "продавать", "продавать на срок без покрытия", "покупать для покрытия" или "удерживать" в отношении конкретных инструментов (акции, сырьевые товары, валюты, опционы, фьючерсы и их комбинации и т.п.). Торговая политика может предусматривать использование кредитов. Торговая политика может включать суммы средств по каждому торгуемому инструменту. Торговая политика может предусматривать закрытие позиций по финансовым инструментам в конце рабочего дня или может требовать автоматической ликвидации позиции в определенное время дня и т.п.
[0069] ОБЛАСТЬ ПОИСКА: Область поиска определяет условия или возможные решения, допустимые в алгоритмах. Например, условия или возможные решения включают: а) финансовые инструменты (акции, сырьевые товары, фьючерсы и т.п.), b) необработанные данные по рынку для определенного инструмента, такие как рыночная цена инструмента на определенный момент времени, объем торговли, сумма продаж без покрытия в случае акций или сумма открытых позиций в случае фьючерсов, с) данные общего характера по рынку, такие как биржевой индекс S&P500 или индекс NYSE для финансового сектора и т.п. Они могут также включать d) производные (математические преобразования) необработанных данных по рынку, такие как "показатели технического анализа". Наиболее распространенные технические показатели включают [взято из статьи "Технический анализ", Wikipedia, 4.06.2008]:
- Индекс накопления/распределения - основывается на закрытии в пределах рабочего дня.
- Средний истинный диапазон - усредненный дневной диапазон цен.
- Полосы Болинджера - диапазон ценовой неустойчивости.
- Нарушение устоявшейся динамики движения курса - цена проходит через область поддержки курса и остается выше нее.
- Индекс товарного канала - определяет циклические тренды.
- Копок - Эдвин Копок разработал показатель Копока с единственной целью: идентификация начала повышения цен на рынке.
- Волновой принцип Эллиотта и золотое сечение - используются для вычисления последовательных движений цен и восстановлений.
- Схема Hikkake - схема идентификации резкого поворота тенденции изменения курса и контанго.
- MACD - схождение/расхождение скользящего среднего.
- Моментум - скорость изменения цены.
- Движение денежной массы - количество акций, проданных за время роста цен.
- Скользящее среднее значение - характеризует задержку после ценового маневра.
- Балансовый объем - моментум покупки и продажи акций.
- Диаграммы РАС - отображение объема в зависимости от уровня цен.
- Параболическая система времени-цены (SAR) - разработана Уайлдером и используется для установки скользящих стоп-приказов на основе цен, стремящихся оставаться в пределах параболической кривой при тенденции к повышению.
- Точка поворота - определяется усреднением максимальной, минимальной цены и цены закрытия определенной валюты или определенных акций.
- Графики "крестики-нолики" - графики цен без шкалы времени.
- Доходность - средство сравнения эффективности работы различных торговых систем или различных инвестиций в рамках одной системы.
- Оценка стоимости базисного пункта (BPV) - схема для идентификации резкого поворота тенденции изменения курса с использованием объемов и цены.
- Индекс относительной силы (RSI) - осциллятор, показывающий интенсивность изменения цен.
- Линия сопротивления - зона, в которой происходит увеличение продаж.
- Осциллятор Rahul Mohindar - индикатор, идентифицирующий тренд.
- Стохастический осциллятор - определяет моменты ликвидации позиций по текущим разбросам цен.
- Поддержка курса акций - зона, в которой происходит увеличение покупок.
- Линия тренда - наклонная линия сопротивления или поддержки курса акций.
- Trix - осциллятор, разработанный в 80-х годах Джеком Хатсоном, показывающий наклон экспоненциального скользящего среднего после трехкратного сглаживания.
[0070] Условия или возможные решения могут также включать е) индикаторы фундаментального анализа. Такие индикаторы принадлежат организации, с которой они связаны, например коэффициент платежеспособности предприятия, f) качественные данные, такие как новости рынка, новости сектора рынка, сообщения о доходах и т.п. Это обычно неструктурированные данные, которые требуют предварительной обработки и организации, чтобы они могли быть считаны алгоритмом. Условия или возможные решения могут также включать g) информированность о текущей торговой позиции алгоритма, например выполняется ли алгоритм для "длинных" или "коротких" сделок по определенному инструменту, и о текущей ситуации в отношении прибылей/убытков.
[0071] Настраиваемый алгоритм определяет конкретные установки, такие как максимально допустимые правила или условия/возможные решения на каждое правило и т.п. Например, может быть определено, что алгоритм может иметь пять правил "покупать" и пять правил "продавать". Для каждого из этих правил может быть разрешено использовать 10 условий, например 5 технических показателей, относящихся к акциям, 3 точки изменений биржевых цен, относящихся к акциям, и 2 индикатора рынка общего характера.
[0072] Руководство определяет любые ранее существовавшие или ставшие известными условия или возможные решения, созданные человеком или полученные по предыдущему циклу обработки, которое управляет алгоритмами для направления в части области поиска для более быстрого достижения лучшего показателя работы. Например, руководящее условие может задавать, что очень сильное утреннее повышение рыночной цены каких-либо акций запускает запрет для алгоритма занимать короткую позицию (тенденция к понижению) по этим акциям в течение всего дня.
[0073] Требования к данным определяют финансовые данные, задокументированные за предыдущие периоды до настоящего времени, необходимые для алгоритмов для целей: (i) обучения и (ii) тестирования. Данные могут включать необработанные данные по рынку для определенного инструмента, или для всего рынка, или некоторых секторов рынка, такие как данные по стоимости тика, данные по объему торгов, данные показателей технического анализа, данные показателей фундаментального анализа, а также неструктурированные данные, преобразованные в читаемый формат. Данные должны быть предоставлены в соответствии с "областью поиска", как это было определено выше. "Настоящее время" может пониматься как динамическая величина, то есть данные непрерывно обновляются и подаются в алгоритмы на постоянной основе.
[0074] Временной период задает оператор указанием момента времени, к которому вычислительная задача должна быть завершена. Это оказывает влияние на назначение приоритетов вычислительных задач инфраструктурой ЦС.
[0075] В соответствии с выделением вычислительной мощности оператор может назначить приоритет определенной вычислительной задачи относительно других задач, которая будет выполняться без очереди (описано ниже). Пульт управления передает вышеуказанную информацию в инфраструктуру ЦС.
[0076] В соответствии с заключением сделок оператор задает, будет ли пульт управления выполнять такие операции в автоматическом режиме на основе результатов активности вычислений (и условий этих операций, таких как общая сумма сделок) или же для заключения сделки необходимо решение человека. Все эти установки или их часть могут быть изменены, в то время как сеть выполняет вычислительную работу.
Операция 2
[0077] Для этой операции может быть два сценария. В любом случае инфраструктура 200 ЦС определяет, требуются ли для области поиска дополнительные данные, отсутствующие в настоящий момент.
[0078] Сценарий А: после получения инструкций операции 1 от пульта 220 управления инфраструктура 200 ЦС формирует алгоритмы в виде кода, который может быть исполнен узлом.
[0079] Сценарий В: инфраструктура 200 ЦС не формирует алгоритмы в виде кода, который может быть исполнен узлом В, в этом сценарии узлы уже содержат код своего алгоритма, который может обновляться время от времени, как будет описано ниже в операции 10. Код исполняется узлами, и результаты объединяются или отбираются инфраструктурой 200 ЦС.
Операция 3
[0080] Инфраструктура 200 ЦС через программный прикладной интерфейс обращается к одному или к нескольким серверам данных для получения недостающих данных. Например, как показано на фигуре 2, инфраструктура 200 ЦС после определения того, что отсутствуют данные с интервалом 5 минут по акциям компании General Electric за годы 1995-1999, через программный прикладной интерфейс обращается к серверам 102 и 104 данных для получения этой информации.
Операция 4
[0081] В соответствии с этой операцией серверы данных загружают запрошенные данные в инфраструктуру ЦС. Например, как показано на фигуре 2, серверы 102 и 104 данных загружают запрошенную информацию в инфраструктуру ЦС.
Операция 5
[0082] Получив от серверов данных запрошенную информацию, инфраструктура 200 ЦС проверяет соответствие этих данных алгоритмам, которые должны быть выполнены, и подтверждает наличие требуемых данных. Затем данные передаются в инфраструктуру 200 ЦС. Если данные неполны, то инфраструктура 200 ЦС может установить соответствующий указатель ("флажок") для информирования узлов, что они должны получить эти данные самостоятельно, как это указано ниже.
Операция 6
[0083] Для этой операции может быть два сценария. В соответствии с первым сценарием узлы могут регулярно передавать в инфраструктуру ЦС тестовые сообщения для информирования о своей готовности. В соответствии со вторым сценарием узлы могут посылать запросы инструкций и данных, после того как клиентская программа выполнена на клиентском ЦП. Инфраструктура 200 ЦС получает информацию о состоянии клиента только после его обращения к ней. В этом сценарии инфраструктура 200 ЦС не поддерживает таблицу состояния для всех подсоединенных к сети клиентов.
Операция 7
[0084] Объединяя тестовые сигналы узлов, то есть сигналы, передаваемые узлами для указания своей работоспособности, или их запросы инструкций и данных в соответствии со вторым сценарием, инфраструктура 200 ЦС всегда имеет информацию об имеющейся вычислительной мощности. Как описано ниже, термин "объединение" относится к процессу добавления числа тестовых сигналов, связанных с каждым узлом. Инфраструктура 200 ЦС также обеспечивает этой информацией в режиме реального времени пульт 220 управления. На основании этой информации, а также других инструкций, полученных из пульта управления, в отношении, например, временного периода, приоритетной обработки и т.д., как описано выше в отношении операции 1, инфраструктура 200 ЦС решает либо (i) сразу же после этого применить назначение приоритетной обработки (то есть назначение вычислительной мощности клиентов на основе приоритета задачи) заданному количеству узлов, либо (ii) добавить новую вычислительную задачу в очереди задач, выполняемых узлами, и управлять очередями на основе заданного периода времени.
[0085] Инфраструктура ЦС периодически в динамике оценивает состояние процесса вычислений, как это описано ниже, а также проверяет соответствие мощностей очередям вычислительных задач с помощью планировщика задач. За исключением случаев, когда требуется обработка с использованием приоритетов (см. операцию 1), инфраструктура ЦС пытается оптимизировать использование вычислительных мощностей путем мониторинга этих мощностей и сегментации их для назначения задачам, находящимся в очередях. Эта операция на фигуре 2 не показана.
Операция 8
[0086] В зависимости от числа имеющихся узлов сети, как описано выше в операции 7, целей/пороговых величин, требований к временным периодам и других факторов инфраструктура 200 ЦС формирует один или несколько пакетов распределения, которые передаются в имеющиеся узлы, отобранные для вычислений. Пакет распределения может содержать, например, (i) представление (например, XML-представление) частичного или полного алгоритма, который в случае генетического алгоритма содержит гены, (ii) соответствующие данные, частичные или полные (см. операцию 5), (iii) установки вычислительной активности узла и инструкции по выполнению вычислений, которые могут включать цели вычислений и пороговые величины, общие для всех узлов или разные, период времени вычислений, указатель запуска вызова недостающих данных путем направления запроса из узла непосредственно в серверы данных и др. Пороговая величина может определяться в одном из вариантов как показатель приспособленности или основной показатель работы наихудшего алгоритма, находящегося в инфраструктуре 200 ЦС. Время обработки может составлять, например, один час или 24 часа. В альтернативном варианте время вычислений может не иметь ограничения. На фигуре 2 показано, что инфраструктура 200 ЦС обменивается сообщениями с узлами 3 и 4 для назначения приоритетной обработки и распределения пакета между этими узлами.
[0087] Если какой-либо узел уже содержит свой собственный программный код алгоритма, как описано в операции 2, а также инструкции по его выполнению, то пакет, который этот узел получает из инфраструктуры 200 ЦС, обычно содержит только данные, которые необходимы узлу для выполнения алгоритма. Предполагается, что узел 5 содержит свой собственный алгоритм, и на фигуре 2 показано, что он обменивается сообщениями с инфраструктурой 200 ЦС для получения только данных, связанных с операцией 8.
Операция 9
[0088] В зависимости от выбранной схемы осуществления может быть два сценария для этой операции. В соответствии с первым сценарием инфраструктура 200 ЦС передает пакеты распределения всем узлам, выбранным для выполнения вычислений. В соответствии со вторым сценарием инфраструктура 200 ЦС по запросу узлов передает пакет распределения или соответствующую часть его, как указано в запросе, каждому узлу, который передал такой запрос. Эта операция на фигуре 2 не показана.
Операция 10
[0089] Каждый выбранный узел обрабатывает содержимое пакета, полученного из инфраструктуры 200 ЦС, и выполняет соответствующие инструкции. Вычисления выполняются узлами параллельно, причем каждый узел решает назначенную ему задачу. Если узлу требуются дополнительные данные для выполнения вычислений, то в соответствующих инструкция может быть указано, чтобы узел скачивал нужные данные в свою локальную базу данных из инфраструктуры 200 ЦС. В альтернативном варианте узел может обращаться непосредственно на серверы данных с запросом на скачивание данных, если в установках узла имеется разрешение на такое обращение. На фигуре 2 показано, что узел 5 обменивается сообщениями с сервером 106 данных для скачивания запрошенных данных.
[0090] Узлы могут быть сконфигурированы таким образом, чтобы они периодически направляли в инфраструктуру ЦС запросы на получение дополнительных генов (если используется генетический алгоритм) и данных. Инфраструктура 200 данных может быть сконфигурирована таким образом, чтобы она направляла различным узлам инструкции/данные случайным образом. Соответственно, в таких вариантах инфраструктура ЦС не зависит от какого-либо определенного узла.
[0091] Также необходимо время от времени осуществлять обновления программы-клиента узла (то есть исполняемой программы, установленной у клиента). Соответственно, программа, содержащая инструкции по выполнению, может содержать инструкции клиенту по загрузке и установке новой версии программы. Программа-клиент узла периодически сохраняет результаты вычислений на жесткий диск узла, так что в случае прерывания работы, которое может быть инициировано инфраструктурой ЦС или может иметь случайный характер, узел может возобновить вычисления, используя сохраненные результаты. Соответственно, обработка информации, выполняемая в соответствии с настоящим изобретением, не зависит от доступности какого-либо одного определенного узла. Поэтому отсутствует необходимость в переназначении определенной задачи, если узел исчезает и по какой-либо причине становится недоступным.
Операция 11
[0092] После возникновения одного из событий: (i) достижение заданной цели/пороговой величины, как описано выше в операции 8, (ii) истечение максимального времени, отведенного на выполнение вычислений (также описано в операции 8), или (iii) при получении соответствующего запроса от инфраструктуры ЦС узел вызывает работающий в ней программный прикладной интерфейс. Вызов программного прикладного интерфейса может содержать данные, относящиеся к текущей доступности узла, его текущей мощности (в случае, если предварительно не были выполнены условия (i) или (ii) и/или клиент имеет дополнительную вычислительную мощность), ход выполнения вычислений с момента последнего отчета, соответствующие результаты вычислений, то есть самое последнее решение задачи, и проверка необходимости обновления программы-клиента узла. Такая передача сообщений может осуществляться синхронно, то есть все узлы передают свои результаты в один и тот же момент времени, или асинхронно, то есть разные узлы передают свои результаты в разные моменты времени в соответствии с установками узлов или в соответствии с командами, переданными в узлы. На фигуре 2 показано, что узел 1 осуществляет вызов инфраструктуры 200 ЦС через программный прикладной интерфейс.
Операция 12
[0093] Получив результаты от одного или от нескольких узлов, инфраструктура ЦС начинает сравнивать полученные результаты с (i) исходными целями и/или с (ii) результатами, полученными от других узлов. Инфраструктура ЦС поддерживает список лучших решений, сформированных узлами в любой момент времени. Если используется генетический алгоритм, то лучшими решениями могут быть, например, первые 1000 генов, которые могут быть ранжированы в порядке показателя эффективности их работы, и поэтому для узлов должна быть установлена минимальная пороговая величина, которая должна превышаться, по мере того как они продолжают свои вычисления. Операция 12 на фигуре 2 не показана.
Операция 13
[0094] Когда узел обращается к инфраструктуре 200 ЦС, как описано в операции 11, инфраструктура 200 ЦС может передавать в ответ команды этому узлу на скачивание новых данных и на обновление (то есть скачивание и установку новой версии программы-клиента), на выключение и т.п. Инфраструктура ЦС может быть дополнительно сконфигурирована для динамического изменения содержания ее пакета распределения. Такие изменения могут касаться (i) алгоритма, (ii) наборов данных, выбранных для этого алгоритма, или (iii) установок узла, касающихся выполнения вычислений. Изменения алгоритма могут быть выполнены либо введением улучшений, разработанных по результатам вычислений узла, либо расширением области поиска, в которой работает алгоритм. Инфраструктура 200 ЦС конфигурируется таким образом, чтобы устанавливать на узлах программы-клиенты, как описано в операции 4. В результате обеспечивается получение нового улучшенного алгоритма.
Операция 14
[0095] Процессы, связанные с вышеописанными операциями, непрерывно повторяются, пока не будет выполнено одно из следующих условий: (i) достигнута поставленная цель; (ii) истекло заданное время выполнения вычислительной задачи (см. операцию 2); (iii) запланирована более приоритетная задача, прерывающая процесс; (iv) планировщик задач инфраструктуры ЦС изменяет приоритеты, управляющие очередью выполняемых задач (см. операцию 7); или (v) вычисления останавливаются или отменяются оператором.
[0096] Если выполнение задачи прервано, как в случае (iii) или (iv), то состояние алгоритма, наборы данных, последовательность получения результатов и установки, относящиеся к вычислительной работе узла, сохраняются в инфраструктуре 200 ЦС для обеспечения возобновления выполнения задачи, когда снова появляются доступные вычислительные мощности. Команда на прекращение процесса также передается инфраструктурой 200 ЦС в любой узел, который находится с ней в контакте. В любой момент в инфраструктуре 200 ЦС может быть выбран режим игнорирования запроса узла на установление контакта, режим выключения узла, или же в узел может быть передана команда на прекращение выполнения текущей задачи и т.п.
Операция 15
[0097] Инфраструктура 200 ЦС передает состояние выполнения вычислительных задач в пульт 220 управления (i) периодически, (ii) по запросу пульта 220 управления, (iii) после завершения вычислений, например, если достигнута цель вычислительной задачи, или (iv) истекло установленное время выполнения задачи. При каждом обновлении информации о состоянии вычислительной работы или при ее завершении инфраструктура 200 ЦС обеспечивает лучший алгоритм на время такого обновления или завершения. Лучший алгоритм является результатом вычислительной работы узлов и инфраструктуры 200 ЦС и сравнительного анализа результатов и работы по развитию алгоритма, выполненной сетью.
Операция 16
[0098] Решение о заключении сделки принимается на основе торговой политики в соответствии с лучшими алгоритмами. Решение может приниматься пультом 220 управления в автоматическом режиме или после утверждения оператором в зависимости от установок, заданных для конкретной задачи (см. операцию 1). Эта операция на фигуре 2 не показана.
Операция 17
[0099] Пульт 220 управления формирует приказ на совершение сделки таким образом, что он соответствует формату программного прикладного интерфейса платформы совершения сделок. Приказ на совершение сделки может содержать (i) инструмент, (ii) количество инструментов сделки, (iii) указание сделки на ограничительных условиях или сделки по наилучшей цене рынка, (iv) указание продажи или покупки, или покупки для покрытия, или продажи на срок без покрытия в соответствии с торговой политикой выбранного лучшего алгоритма. Эта операция на фигуре 2 не показана.
Операция 18
[0100] Пульт управления передает приказ на совершение сделки в платформу 300.
Операция 19
[0101] Платформа 300 обеспечивает совершение сделки на финансовых рынках.
[0102] На фигуре 3 приведена блок-схема, на которой показаны компоненты и модули клиента 300 и сервера 350. Как показано на фигуре 3, каждый клиент содержит пул 302 всех генов, которые вначале были созданы клиентом случайным образом. Гены, созданные случайным образом, оцениваются модулем 304 оценки. Оценка выполняется для каждого гена в пуле. Каждый ген используется для ряда случайно выбранных акций или показателей акций на интервале большого числа дней, например в течение 100 дней. Оценка выполняется для каждого гена в пуле. После завершения оценки всех генов выбираются гены с наилучшими показателями (например, первые 5%) и помещаются в пул 306 элиты.
[0103] Генам из пула элиты разрешено репродуцирование. Для этого модуль 308 репродуцирования генов случайным образом выбирает и комбинирует два или более генов, то есть путем смешивания правил, использованных для создания родительских генов. После этого пул 302 заполняется популяцией из вновь созданных генов (дочерние гены), а также из генов, которые были в пуле элиты. Прежний пул генов удаляется. Новая популяция генов в пуле 302 оценивается, как было описано выше.
[0104] Модуль 310 селекции генов сконфигурирован таким образом, чтобы по запросу снабжать сервер 350 более приспособленными генами, имеющими улучшенные характеристики. Например, сервер 350 может передавать в модуль 310 селекции генов запрос, содержащий вопрос: "Приспособленность моего наихудшего гена равна X, имеются ли гены с лучшими характеристиками?". Модуль 310 может ответить сообщением "Имеется 10 генов с лучшими характеристиками" и попытаться передать эти гены в сервер.
[0105] Прежде чем новый ген будет принят сервером 350, этот ген проходит проверку на фальсификацию в модуле 352 обнаружения фальсификации, находящемся в сервере. Модуль 354 участия/объединения предназначен для отслеживания вклада каждого клиента для объединения вкладов всех клиентов. Некоторые клиенты могут быть очень активные, а участие других клиентов может быть существенно меньшим. Некоторые клиенты могут использовать гораздо более производительные компьютеры, чем другие клиенты. База 356 данных клиентов обновляется модулем 354 участия/объединения с учетом вычислительной мощности, предоставляемой каждым клиентом.
[0106] Модуль 360 принятия генов предназначен для проверки того, что гены, полученные от клиента, лучше, чем гены, уже имеющиеся в пуле 358 сервера, прежде чем эти новые гены будут добавлены в пул 358. Соответственно, модуль 360 принятия генов присваивает каждому принятому гену идентификатор ID и выполняет ряд операций по реорганизации перед добавлением принятого гена в пул 358 сервера.
[0107] На фигуре 4 показаны различные компоненты каждого устройства обработки информации, показанного на фигуре 1. Показано, что каждое устройство обработки информации включает по меньшей мере один процессор 402, который обменивается информацией с различными периферийными устройствами с помощью подсистемы 404 шины. Это могут быть следующие периферийные устройства: подсистема 406 хранения данных, в том числе подсистема 408 оперативного ЗУ и файловая подсистема 410 хранения данных, интерфейсные устройства 412 ввода информации, интерфейсные устройства 414 вывода информации и подсистема 416 сетевого интерфейса. Устройства ввода и вывода информации обеспечивают взаимодействие пользователя с системой 402 обработки данных.
[0108] Подсистема 416 сетевого интерфейса обеспечивает сопряжение с другими компьютерными системами, сетями и ресурсами 406 хранения данных. Может обеспечиваться сопряжение с такими сетями, как Интернет, LAN, WAN, беспроводные сети, внутрикорпоративные сети, частные сети, общедоступные сети, сети с коммутируемыми линиями связи или любые другие подходящие сети связи. Подсистема 416 сетевого интерфейса представляет собой интерфейс для приема данных устройством обработки информации от других источников и передачи данных другим источникам. В качестве подсистемы 416 сетевого интерфейса может использоваться сетевая карта Ethernet, модем (телефонная, спутниковая, кабельная связь, ISDN и т.п.), модули цифровой абонентской линии (DSL) и др.
[0109] К интерфейсным устройствам 412 ввода информации относятся, например, клавиатуры, позиционирующие устройства, такие как мыши, трекболы, сенсорные планшеты, планшеты графического ввода, сканеры, сканеры штрихкода, сенсорные экраны, устройства ввода звука, такие как системы распознавания речевой информации, микрофоны и др. В общем случае термин "устройства ввода" относится ко всем возможным типам устройств и способов ввода информации в устройство обработки информации.
[0110] К устройствам 414 вывода информации относятся, например, дисплеи, принтеры, факс-аппараты или устройства вывода звуковой информации. В качестве дисплея может использоваться ЭЛТ, плоская панель, например жидкокристаллический дисплей или проекционное устройство. В общем случае термин "устройства вывода" относится ко всем возможным типам устройств и способов вывода информации из устройства обработки информации.
Подсистема 406 хранения данных может быть устроена таким образом, чтобы в ней сохранялись базовые программы и данные, обеспечивающие функционирование в соответствии с вариантами осуществления настоящего изобретения. Например, в соответствии с одним из вариантов осуществления изобретения в подсистеме 406 хранения данных могут храниться программные модули, обеспечивающие выполнение функций в соответствии с настоящим изобретением. Эти программные модули могут выполняться процессором 402. Подсистема 406 хранения данных может также использоваться в качестве хранилища данных, используемых в соответствии с настоящим изобретением. Подсистема 406 хранения данных может включать, например, подсистему 408 запоминающих устройств и файловую подсистему 410 хранения данных, например, на дисках.
[0111] Подсистема 408 запоминающих устройств может содержать различные типы таких устройств, включая оперативное запоминающее устройство 418 с произвольным доступом (ОЗУ) для хранения команд исполняемых программ и данных во время исполнения программ, а также постоянное запоминающее устройство 420 (ПЗУ), в котором хранятся программы. Файловая подсистема 410 хранения информации обеспечивает долговременное хранение файлов программ и данных, и в качестве такой подсистемы может использоваться жесткий диск, дисковод гибких дисков вместе с соответствующими носителями данных, дисковод компакт-дисков, дисковод оптических дисков, сменные картриджи с носителями информации и другие аналогичные устройства.
[0112] Подсистема 404 шины обеспечивает механизм обмена сообщениями между различными компонентами и подсистемами устройства обработки информации. Хотя подсистема 404 шины показана схематически как одна шина, в других вариантах осуществления изобретения может использоваться несколько шин.
[0113] В качестве устройства обработки информации может использоваться персональный компьютер, портативный компьютер, рабочая станция, сетевой компьютер, главный компьютер, интерактивный терминал и др. Необходимо понимать, что описание устройства обработки информации, показанного на фигуре 4, является всего лишь примером. Возможны многие другие конфигурации, количество компонентов которых отличается от количества компонентов системы, показанной на фигуре 2.
[0114] Вышеописанные варианты осуществления настоящего изобретения приведены в качестве его иллюстрации и никоим образом не ограничивают его объем. Возможны различные альтернативные и эквивалентные варианты. После ознакомления с настоящим описанием специалисты могут предложить дополнения и исключения компонентов рассмотренных вариантов, а также их модификации, которые охватываются объемом настоящего изобретения.
Класс G06F9/46 устройства для мультипрограммирования