Данные по теплоотдаче в трубе с ^/^о = 0.025 показывают, что интенсивность теплоотдачи
возросла почти в 2 раза по сравнению с гладкой трубой. При И0^0 = 0.033 рост интенсивности
теплообмена составил 2,35 раза. Такой резкий рост объясняется тем, что трубы со спиральной накаткой имеют не только поступательную, но и вращательную составляющую потока жидкости. Вторая составляющая турбулизирует пристенный вязкий подслой, в котором сосредоточено основное термическое сопротивление. Сравнение результатов на гладкой трубе и трубах с различными
параметрами шага спирально накатка показал, что с ростом ^ /^ интенсивность переноса тепла
увеличивается. Так, при = 0.025 величина N4 = 155, при ^Ао = 0.033- N4 = 190 и
соответственно при = 0.063 - N4 = 255 . Видно, с ростом ^ /So интенсивность процесса
возросла в 1,67 раза, а по сравнению с гладкой трубой почти в 2 - 3 раза. Известно что разработка компактных аппаратов требует интенсификации теплообмен не только в трубном, но и в межтрубном пространстве при помощи эффективных турбулизаторов, а также улучшить умывание труб в межтрубном пространстве.
Следует отметить, что придание трубам формы в виде спиральной накатки технологически не сложно и самое важное не изменяет наружной диаметр трубы. Поэтому, появляется возможность получить после сборки подобных труб тесный пучок. Одним из основных достойность аппарата из спирально - накатанных труб является интенсификация теплообмена как снаружи, так и внутри, что обеспечивается специальной и эффективной конструкцией теплообменных труб. Кроме того, внутри и снаружи можно прокачивать теплоносители при высоких скоростях. К недостаткам подобных труб относится то, что из толстостенных труб невозможно изготовить подобные трубы.
Анализ полученных данных показывает, что интенсификация в 2 и более раз позволяет создать более компактный теплообменный аппарат при одинаковой тепловой мощности.
Список литературы
1. Дрейцер Г.А. О некоторых проблемах создания высокоэфефективных трубчатых теплообменных аппаратов // Новости теплоснабжения, 2004. № 5. С. 18-34.
2. Юсупбеков Н.Р., Нурмухамедов Х.С., Зокиров С.Г. Кимёвий технология асосий жараён ва курилмалари. Т.: Шар;, 2003. 644 б.
3. Щукин В.К. Теплообмен и гидродинамика внутренних потоков в полях массовых сил. М.: Машиностроение, 1970. 331 с.
4. Линец А.У., Кузнецов С.М., Дирина Л.Д. Теплообмен и гидродинамика в каналах сложной формы. М.: Машиностроение, 1996. 200 с.
АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МНОГОПОТОЧНЫХ ПРОГРАММ, НАПИСАННЫХ НА ЯЗЫКАХ JAVA И GO Гасанов З.З.
Гасанов Заурбек Зубаирович - аспирант, кафедра программного обеспечения вычислительной техники и автоматизированных систем, Дагестанский государственный технический университет, г. Махачкала
Аннотация: в статье рассматриваются подходы к разработке многопоточных программ на языках программирования Java и Go. Дается общая информация о многопоточности, приведены отличительные особенности реализации многопоточности на двух языках, проводится сравнение и анализ производительности программ с большим количеством потоков.
Ключевые слова: многозадачность, многопоточность, поток, горутина, производительность.
Развитие многоядерных и многопроцессорных вычислительных систем привело к тому, что для разработки эффективных программ необходимо пересмотреть традиционные подходы к разработке программного обеспечения. Современная программа в рамках операционной системы представляет собой не просто процесс с единственным потоком, а совокупность потоков, которая позволяет в максимальной степени задействовать имеющиеся вычислительные ресурсы.
В простейшем случае каждый поток представляет собой относительно самостоятельную задачу, которая, тем не менее, может быть связана с другими потоками. Иногда же программе необходимо выполнять большое количество однотипных операций. В данном случае также следует организовать разбиение па потоки для максимально эффективного использования вычислительных мощностей компьютера.
Вследствие этого современные языки программирования должны обладать удобными для программиста и максимально эффективными с точки зрения производительности средствами разработки многопоточного программного обеспечения.
Язык программирования Java был официально выпущен в 1995 году, и с тех пор стал одним из наиболее популярных языков программирования в мире. Согласно рейтингу TTOBE за май 2018 года [1], Java занимает лидирующую позицию. Причем с 2002 года большую часть времени он оставался лидером, иногда опускаясь на вторую позицию, когда его вытеснял язык C.
Язык программирования Go значительно моложе Java. Он был официально представлен в 2009 году, а выпуск версии 1.0 состоялся в 2012 году. В рейтинге TTOBE за май 2018 года [1] язык Go располагается на 14-м месте.
Программы Java работают в рамках виртуальной машины Java. Программы на Java пользуются многозадачными средами на основе процессов, однако такая многозадачность не контролируется Java — это прерогатива операционной системы. Многопотоковая же многозадачность виртуальной машиной Java контролируется [2].
Основной класс Java, представляющий поток, — Thread. При этом Java предоставляет обширные возможности для написания многопотоковых программ, большая часть из которых располагается в пакете java.util.concurrent.
Несмотря на то, что потоки являются относительно легковесными сущностями по сравнению с процессами, нельзя создавать их огромное количество, поскольку каждый из них, несмотря на работу в рамках одного процесса, требует некоторого количества ресурсов. Потоки Java как бы отображаются на потоки операционной системы.
Напишем программу на Java, которая будет создавать 10000 потоков. Каждый поток будет сначала засыпать на секунду, а затем выполнять какое-нибудь простое действие типа вывода числа на экран. После запуска программа выводит следующее сообщение об ошибке: «Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread». Таким образом, мы получили нехватку памяти, вследствие которой программа не смогла завершить свою работу. Если посмотреть трассировку стека, то первым сообщением будет «at java.lang.Thread.start0(Native Method)». Из него видно, что при создании потоков происходит неявный вызов нативного метода. Нативные методы в Java — это платформенно-зависимые методы, представленные на языке C/C++ [3].
Механизм, позволяющий создавать многопоточные программы на языке Go, называется горутиной. Ее можно рассматривать как легковесный поток. Этот поток создается не операционной системой, а средой исполнения Go [4], что позволяет уменьшить расходы памяти при его создании и использовании.
Если написать на Go программу, аналогичную описанной выше на Java, то можно отметить, по программа на Go не завершает аварийно работу, а позволяет всем горутинам (которые здесь являются аналогами потоков Java) исполниться. Увеличение количества горутин до 100000 и даже 1000000 никоим образом не приводит к аварийному завершению программы.
Протестируем работу потоков Java и горутин. Напишем программы, в которых будет создаваться большое количество потоков исполнения, выполняющих некоторые математические операции. На рис. представлены временные отрезки работы программ на Java и Go с разным количеством потоков.
Как видно из рис. 1, в общем случае программы на Go исполняются несколько быстрее аналогичных на Java, однако с увеличением числа потоков разница во времени работы сокращается
На практике для более бережного управления потоками часто используются пулы потоков. Создание потока сопряжено с определенными затратами ресурсов. Использование пулов позволяет переиспользовать однажды созданные потоки.
Рис. 1. Временные затраты на работу многопоточных программ
Список литературы
1. TIOBE Index for May 2018 [Электронный ресурс]. URL: https://www.tiobe.com/tiobe-index/ (дата обращения: 30.05.2018).
2. ШилдтГ. Java 8. Полное руководство, 9-е изд.: Пер. с англ. М.: ООО «И.Д. Вильямс», 2015. 1376 с.
3. How Java thread maps to OS thread? [Электронный ресурс]. Режим доступа: https://medium.com/@unmeshvjoshi/how-java-thread-maps-to-os-thread-e280a9fb2e06 (дата обращения: 29.05.2018).
4. Why goroutines are not lightweight threads? [Электронный ресурс]. Режим доступа: https://codeburst.io/why-goroutines-are-not-lightweight-threads-7c460c1f155f/ (дата обращения 29.05.2018).
РАЗРАБОТКА АЛГОРИТМА ПРОГНОЗИРОВАНИЯ ДЛИТЕЛЬНОСТИ МАРШРУТА В СИСТЕМЕ ОПТИМИЗАЦИИ МАРШРУТОВ ДОСТАВКИ ДЛЯ ФГУП «ПОЧТА РОССИИ» Шандакова И.А.
Шандакова Ирина Александровна — магистр, кафедра прикладного программирования и технологических инноваций (базовая), Санкт-Петербургский национальный исследовательский университет информационных технологий,
механики и оптики, г. Самара
Аннотация: данная статья посвящена обзору транспортной логистики, также актуальности ее проблем. В ней проведен анализ существующих алгоритмов оптимизации. Разработаны основные условия и параметры для алгоритма прогнозирования длительности маршрутов в системе оптимизации маршрутов доставки с учетом всего функционального процесса предприятия, а также опираясь на нормативные документы. Система оптимизации маршрутов позволит повысить качество обслуживания и уменьшить затраты, что немаловажно в условиях современного бизнеса. Для отслеживания временных интервалов на маршруте, необходимо разработать алгоритм прогнозирования его длительности.
Ключевые слова: маршрут, логистика, длительность маршрута, алгоритм, задачи маршрутизации, логистика.
УДК 004
Оптимизация маршрутов доставки автомобильным транспортом, обеспечивает ряд преимуществ таких, как экологические, экономические, эргономичные. Одним из результатов оптимизации маршрута является сокращение пробега транспортного средства, также уменьшение расхода топлива, что обеспечивает сохранение моторесурса двигателя. Еще одним показателем является уменьшение