Постов с тегом "Linux": 53

Linux


>>> Рейтинг 2017 производителей суперкомпьютеров Top500

Опубликован 50-й выпуск рейтинга 500 самых высокопроизводительных компьютеров мира. Новый выпуск рейтинга примечателен двумя важными событиями:

— Во-первых, Linux полностью вытеснил остальные ОС и теперь используется на всех представленных в рейтинге суперкомпьютерах.

— Во-вторых, наблюдается наращивание мощных вычислительных кластеров в Китае, которые активно вытесняют из рейтинга американские системы, число которых уменьшилось за полгода с 168 до 143, а число китайских систем возросло со 160 до 202. Примечательно, что всего два c половиной года назад в Китае было 37 кластеров, входящих в TOP500.
  • Самый мощный отечественный кластер Lomonosov 2 сместился с 59 на 63 место в рейтинге. Кластер Lomonosov опустился со 164 на 227 место. Третий по производительности отечественный кластер Tornado опустился с 297 на 412 место. Как и полгода назад в рейтинге остаётся только 3 отечественных кластера (в позапрошлом рейтинге было 5 отечественных систем, а в 2012 году — 12);
  • Распределение по количеству суперкомпьютеров в разных странах:
    • Китай: 202 (160 в прошлой редакции рейтинга);
    • США: 143 (168);
    • Япония: 35 (33);
    • Германия: 21 (28);
    • Франция: 18 (18)
    • Великобритания: 15 (17)
    • Италия: 6 (8);
    • Нидерланды: 6 (4)
    • Южная корея 5 (8)
    • Швеция: 5 (5)
    • Польша 5 (6)
    • Канада 5 (6);
    • Австрия, Саудовская Аравия, Ирландия, Индия: 4;
    • Россия, Швейцария: 3.
  • В рейтинге операционных систем, используемых на суперкомпьютерах, теперь остался только Linux: 
    • Linux — 500 систем, 100%
    • Unix — 0, (полгода назад было 2)
    • Смешанные — 0
    • Windows — 0
    • BSD — 0
  • Распределение по дистрибутивам Linux (в скобках указано значение из прошлой редакции рейтинга):
    • 53.4% (58.8%) не детализируют дистрибутив,
    • 21.8% (16.6%) используют CentOS,
    • 9.2% (8.6%) — Cray Linux,
    • 4.2% (4.2%) — SUSE,
    • 4.4% (3.4%) — RHEL,
    • 1.4% (1.2%) — Ubuntu;
    • 0.8% (0.8%) — Scientific Linux, 
  • Минимальный порог пиковой производительности для вхождения в Top500 вырос за полгода с 430.5 до 548.7 терафлопсов, а для Top100 — с 1193 до 1283 терафлопсов. Система, замыкающая нынешний рейтинг, в прошлом выпуске находилась на 368 месте;
  • Суммарная производительность всех систем в рейтинге за полгода возросла с 749 до 845 петафлопсов (три года назад было 309 петафлопсов). В настоящее время 181 кластер демонстрирует производительность более петафлопcа (в прошлом рейтинге — 138, три года назад — 50);
  • Общее распределение по количеству суперкомпьютеров в разных частях света выглядит следующим образом: 252 суперкомпьютера находится в Азии (212 в предыдущем списке), 149 в Америке (176) и 93 в Европе (106);
  • В качестве процессорной основы лидируют CPU Intel — 94.2% (было 92.8%), на втором месте — IBM Power — 2.8% (было 4.2%), на третьем SPARC64 — 1.4%, на четвёртом AMD — 1% (было 1.2%);
  • 27% (31.6%) всех используемых процессоров имеют 12 ядер, 21% (12.8%) — 16 ядер, 10.6% (13.2%) — десять, 10.4% (9.6%) — 14 ядер, 9.2% (11.2%) — 8 ядер, 8% (7%) — 18 ядер, 4.6% — 20 ядер. Процессоры с числом ядер меньше 6 в рейтинг не попали;
  • 102 из 500 систем (в прошлом рейтинге — 91) дополнительно используют ускорители или сопроцессоры, при этом в 86 системах задействованы чипы NVIDIA (было 74), в 12 — Intel Xeon Phi (было 17), в 0 — GPU AMD (было 1), 5 — PEZY (2), в 2 используются гибридные решения (было 13);
  • Среди производителей кластеров на первом месте компания Hewlett-Packard 24.4% (28.6%), на втором месте — Lenovo 16.2% (17%), на третьем месте — Inspur 11.2%, на четвёртом — Cray 10.6% (11.4%), на пятом — Sugon 10.2% (9.2%), далее следуют IBM 3.8% (5.4%), Huawei 3.8%, Bull 3.4%, Dell EMC 3.2% и Fujitsu 2.4%.
цинк

#пора_граммировать [7] ... авторизация на сайте МосБиржи #headers

— заходим на адрес https://passport.moex.com и регистрируемся. 
   запоминаем логин и пароль.
   подтверждаем почту.

— вместо login:password вбиваем свои данные
using System;
using System.Net;
using System.Text;

namespace AuthMoexSmpl
{
    class Program
    {
        static void Main(string[] args)
        { 
            string authLink = "https://passport.moex.com/authenticate";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(authLink);
            request.ContentType = "text/plain; charset=utf-8";
            request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes("login:password")); //свои данные
            request.PreAuthenticate = true;
            request.CookieContainer = new CookieContainer();                 
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;            
            for(int i=0; i < response.Headers.Count; ++i)  
	                Console.WriteLine("\nHeader Name:{0}, Value :{1}",response.Headers.Keys[i],response.Headers[i]);
        }
    }
}
D:\devel\net\AuthMoexSmpl>dotnet run

Header Name:Cache-Control, Value :no-store, must-revalidate, no-cache, ma

Header Name:Connection, Value :close

Header Name:Date, Value :Fri, 10 Nov 2017 19:53:12 GMT

Header Name:Pragma, Value :no-cache

Header Name:ETag, Value :"xxxxxx"

Header Name:Server, Value :nginx

Header Name:Set-Cookie, Value :MicexPassportCert=xxxxxxx; domain=.moex.com; path=/, _passport_se
m xxxxx; path=/; HttpOnly

Header Name:Status, Value :200 OK

Header Name:X-Runtime, Value :713

Header Name:X-Moex-Passport-Certificate, Value :xxxxxx

Header Name:X-Powered-By, Value :Phusion Passenger 4.0.57

Header Name:Access-Control-Allow-Credentials, Value :true

Header Name:Access-Control-Expose-Headers, Value :X-MicexPassport-Marker

#учусьучить





#пора_граммировать [6] ... авторизация на сайте МосБиржи #cookie

— заходим на адрес https://passport.moex.com и регистрируемся.
   запоминаем логин и пароль.
   подтверждаем почту.

— вместо login:password вбиваем свои данные
using System;
using System.Net;
using System.Text;

namespace AuthMoexSmpl
{
    class Program
    {
        static void Main(string[] args)
        { 
            string authLink = "https://passport.moex.com/authenticate";
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(authLink);
            request.ContentType = "text/plain; charset=utf-8";
            request.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.GetEncoding("ISO-8859-1").GetBytes("login:password")); // вносим свои данные
            request.PreAuthenticate = true;
            request.CookieContainer = new CookieContainer();                 
            HttpWebResponse response = request.GetResponse() as HttpWebResponse;            
            foreach (Cookie cook in response.Cookies) {
                Console.WriteLine("Cookie:");
                Console.WriteLine("{0} = {1}", cook.Name, cook.Value);
                Console.WriteLine("Domain: {0}", cook.Domain);
                Console.WriteLine("Path: {0}", cook.Path);
                Console.WriteLine("Port: {0}", cook.Port);
                Console.WriteLine("Secure: {0}", cook.Secure);
                Console.WriteLine("When issued: {0}", cook.TimeStamp);
                Console.WriteLine("Expires: {0} (expired? {1})", cook.Expires, cook.Expired);
                Console.WriteLine("Don't save: {0}", cook.Discard);    
                Console.WriteLine("Comment: {0}", cook.Comment);
                Console.WriteLine("Uri for comments: {0}", cook.CommentUri);
                Console.WriteLine("Version: RFC {0}" , cook.Version == 1 ? "2109" : "2965");                
                Console.WriteLine ("String: {0}", cook.ToString());
            }                   
        }
    }
}
D:\devel\net\AuthMoexSmpl>dotnet run
Cookie:
_passport_session = xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Domain: passport.moex.com
Path: /
Port:
Secure: False
When issued: 11.11.2017 01:55:42
Expires: 01.01.0001 00:00:00 (expired? False)
Don't save: False
Comment:
Uri for comments:
Version: RFC 2965
...

#учусьучить

#пора_граммировать [5] ... цена последней сделки по Si с биржи.

Для получения последней сделки нужно изменить порядок запроса на обратный добавив
reversed=1
и оставить только строчку номер 15 в запросе
limit=1
получим запрос вида
https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json?reversed=1&limit=1
Вариант автоматизации упрощенно:
using System;
using System.Net;
using System.IO;
using System.Text;

namespace GetLastPrice
{
    class Program
    {
        static void Main(string[] args)
        { 
            string newLine;
            string[] lastLine;
            string link = "https://iss.moex.com/iss/engines/futures/markets/forts/securities/SiZ7/trades.json?reversed=1&limit=1";
            int count = 0;           
            for (;;) {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(link);
                request.ContentType = "text/plain; charset=utf-8";
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;        
                using (Stream responseStream = response.GetResponseStream())
                {                    
                    StreamReader sr = new StreamReader(responseStream, Encoding.UTF8);                   
                    while ((newLine = sr.ReadLine()) != null) {                        
                        if (count == 14) {
                            if (newLine =="") break;
                            else {                        
                                lastLine =  newLine.Split(",");
                                Console.WriteLine("Volume is " + lastLine[6] +" at Price " + lastLine[5]);
                            }                                                   
                        }
                        count++;                                            
                    }                                                               
                }
                count = 0;
                response.Close();
            }            
        }
    }
}


( Читать дальше )

#пора_граммировать [3] делаем C# сразу для/на Windows <==> Linux

Нетрудно сделать версию консольной проги по стандарту  2.0 для запуска на Windows или Linux:

— каталог Debug наполнялся содержанием при
dotnet run

Для релиза:

— в каталоге проекта делаем

   для win7:
dotnet publish -c Release -r win7-x64
   для Ubuntu 14.04:
dotnet publish -c Release -r ubuntu.14.04-x64

полный список платформ Windows, Linux, MacOS X

Забираем релизы в каталоге Release проекта.




#учусьучить

Торгуем из под Linux Часть 4 - Финал.

    • 17 августа 2017, 16:25
    • |
    • Svips
  • Еще

Первая часть
Вторая часть
Третья часть

Всем привет.

Вот мы и закончили свой проект перевода своих торговых решений на операционную систему Linux. За шесть месяцев было написанно с нуля все что нужно для нашего стиля торговли и контроля рисков. Поставленные и решенные задачи:

  — Иметь унифицированный терминал для торговли разных бирж
  — Иметь сервер рискменеджера для контроля рисков
  — Независить от платформы клиента(трейдера), виндовс, линукс, андроид, макос и тд.
  — Возможность одновременной торговли на одном счете нескольких трейдеров\роботов

Весь комплекс прошел боевое тестирование и успешно внедрен в повседневную работу. Всем кто следил за проектом и поддерживал, огромное спасибо!

Ну и небольшое видео как это было:



( Читать дальше )

Торгуем из под Linux Часть 3.

    • 07 марта 2017, 11:53
    • |
    • Svips
  • Еще


Первая часть
Вторая часть


Всем привет.

Прошло чуть больше месяца как мы стартанули переписывать все ПО под новую концепцию. Как вы помните основные посылы были следующие:
  — Написать нативный кроссплатформеный сервер для проптрейдинговой деятельности
  — Написать Веб простейшую торговую платформу для проптрейдинговой деятельности

Давайте немного поясним, что мы имеем ввиду под проптрейдинговой деятельностью. В данном контексте мы понимаем это следующим образом:

Лицо или группа лиц которая хочет торговать с одного аккаунта Квика и иметь при этом рискменеджера. Т.е. по сути, Квик является датафидом и исполнителем заявок. Он подключается к нашему серверу и работаетает с ним. Клиенты — проптредеры подключаются через вебклиента к нашему серверу и совершают сделки в рамках своих лимитов, которые контролирует сервер. Такая своеобразная возможность дать в ДУ без предоставления доступа к счету и приэтом 100% контролировать риски трейдеров. Сервер на нашей стороне. Тредеров добавляем сами, и каждому выставляем лимит потерь на день и рабочий сайз. В итоге трейдер не может за день потерять больше чем лимит.

Буквально вчера закончили тесты первой альфаверсии с минимальным функционалом.
  — Сервер: принимает и раздает стакан и часовой чарт, принимает и отсылает информацию по ордерам, мониторит риски трейдеров.
  — ВебКлиент: принимает и отображает стакан и часовой чарт, выставляет и снимает ордера, принимает информацию по ним.

На данный момент платформа работает стабильно, поэтому переводим всех своих трейдеров на нее. Дальше уже будем дорабатывать остальной функционал.

Если интересно, ставьте плюсы, будем постить дальнейший ход дел )
Конструктивная критика и предложения приветствуются.
Всем профитов!

Ну и скриншот текущего клиента:

DirexTrade Web Client

 


Установка Quik 7 (7.5) на Linux

Имеем:

CentOS 6.7 и желание установить Quik для двух разных пользователей.
Не буду описывать саму установку Quik'a — в нете полно статей. Вкратце — ставим wine, качаем установщик, жмем Далее несколько раз.
Установка для двух пользователей вносит необходимость установить Quik 2 раза в разные папки.

Проблемы с которыми столкнемся:
1. Кракозябры — неверная локаль в системе.
2. Квик не видит ключи. Или после установки второго экземпляра первый забыл где его ключи.

Решения:

1. Запускаем экзишник через вайн с явным указанием локали ru_RU.
   LANG=ru_RU wine /home/vlad/.wine/drive_c/Open_Broker_QUIK/info.exe > /dev/null 2>&1 &

2. В настройках Quik(F9) можно в разделе Программа-> Шифрование можно указать где брать ключи. Так вот. ЭТО НЕ РАБОТАЕТ(

В этом же разделе строкой выше есть серый(неизменяемый) путь к qrypto.cfg (Используемый файл настроек). Именно этот файл несет смысловую нагрузку.

Я его сделал таким:

SECRING=.\secring.txk
PUBRING=.\pubring.txk

Т.е. ключи кладем в корневую директорию с Quik'ом.

( Читать дальше )

Торгуем из под Linux Часть 2.

    • 25 января 2017, 16:10
    • |
    • Svips
  • Еще

Первая часть.

Всем привет.
Ну что, расскажем что в итоге у нас получилось и к чему пришли и идем. Первое с чем надо было определиться это сам дистрибутив. Перепробовали кучу. Требования были следующие:
  — Легковесный
  — Версии LTS или стабильный
 Просмотрели:
 Arch Linux — Всем понравился, но слишком много проблем может возникать при апдейтах и «минимальных» чихах. Нет времени на устранение этих проблем.
 CentOS — Понравилась, но как то не зашла.
 Debian — Как не странно вообще не пошла у нас. Даже не стали копать.
 Linux Mint — Слишком «тяжелая» овер 9ГБ в установке
 Linux Ubuntu и ежесней Kubuntu и тд — Слишком «тяжелая» овер 9ГБ в установке
 Slackware — Понравилась всем, но тяжелая, так же овер 9ГБ в установке
 Ubuntu Server — Вот это подошло на 100%. Легкая, до 700МБ в установке. Легко настраивается. Хорошее сообщество. LTS и тд. Вобщем как основу оси выбрали ее.

Выбор DE — Графической среды. Тут у нас было сразу два фаворита 1)



( Читать дальше )

....все тэги
UPDONW
Новый дизайн