7 research outputs found

    Fast and Robust Vectorized In-Place Sorting of Primitive Types

    Get PDF
    Modern CPUs provide single instruction-multiple data (SIMD) instructions. SIMD instructions process several elements of a primitive data type simultaneously in fixed-size vectors. Classical sorting algorithms are not directly expressible in SIMD instructions. Accelerating sorting algorithms with SIMD instruction is therefore a creative endeavor. A promising approach for sorting with SIMD instructions is to use sorting networks for small arrays and Quicksort for large arrays. In this paper we improve vectorization techniques for sorting networks and Quicksort. In particular, we show how to use the full capacity of vector registers in sorting networks and how to make vectorized Quicksort robust with respect to different key distributions. To demonstrate the performance of our techniques we implement an in-place hybrid sorting algorithm for the data type int with AVX2 intrinsics. Our implementation is at least 30% faster than state-of-the-art high-performance sorting alternatives

    Pseudorandom number generator influence on the genetic algorithm performance to minimize maritime cargo delivery route length

    Get PDF
    We consider a problem of minimizing the maritime cargo delivery route length to reduce the delivery cost. In our model, the cost is equivalent to the sum of tour lengths of feeders used for the delivery to cover the route. Formulated as a multiple traveling salesman problem, we solve it with a genetic algorithm. The algorithm performance is dramatically influenced by the stream of pseudorandom numbers used for randomly generating the starting population and accomplishing random mutations. As the number of ports increases from 10 to 80, the route length variation intensifies from 3.5% to 22.5% on average. However, we increase the route length minimization accuracy by re-running the algorithm to solve the same problem until closely the best solution is obtained. The number of reruns is about 3 to 6 for up to 20 ports. For more than 20 ports the required number of algorithm reruns abruptly increases from 28 reruns for 30 ports to about 51 reruns within the range of 40 to 80 ports

    Pengamanan pesan menggunakan algoritma One Time Pad (OTP) dengan Linear Congruential Generator (LCG) sebagai pembangkit kunci

    Get PDF
    INDONESIA: Kriptografi merupakan salah satu metode yang dapat digunakan untuk mengamankan suatu pesan agar pesan tersebut tidak dapat dibaca oleh sembarang orang. Salah satu algoritma klasik yang ada dalam kriptografi adalah algoritma One Time Pad (OTP). OTP adalah algoritma yang menggunakan kunci sepanjang plaintextnya dan kunci yang digunakan harus acak oleh karena itu dibutuhkan suatu pembangkit bilangan acak agar dapat digunakan sebagai kunci. Salah satu algoritma yang dapat menghasilkan bilangan acak adalah Linear Congruential Generator (LCG). Tujuan utama dari penelitian ini adalah untuk mendeskripsikan proses pembangkitan kunci menggunakan algoritma LCG, proses enkripsi pesan dengan menggunakan algoritma OTP, dan proses dekripsi pesan dengan menggunakan algoritma OTP. Metode penelitian yang digunakan adalah penelitian literatur. Adapun tahapan mengolah data dalam penelitian ada 3 yaitu proses pembangkitan kunci menggunakan algoritma LCG, proses enkripsi pesan dengan menggunakan algoritma OTP, dan proses dekripsi pesan dengan menggunakan algoritma OTP. Hasil yang diperoleh dari penelitian ini adalah algoritma LCG dapat memenuhi kebutuhan sebagai kunci karena kunci yang dihasilkan adalah kunci yang dinamis dengan syarat panjang periodenya harus lebih besar atau sama dengan panjang plaintextnya. Proses penyandian pesan menggunakan algoritma OTP memiliki tingkat keamanan yang tinggi sebab jumlah karakter yang digunakan lebih banyak dan proses pengiriman pesan lebih mudah. Chipertext yang dihasilkan merupakan pesan yang sangat acak dan tidak terbaca sehingga sulit dipecahkan namun dalam proses dekripsi kunci yang digunakan harus sama dengan milik pengirim. ENGLISH: Cryptography is one method that can be used to secure a message so that the message cannot be read by unauthorized person. One of the classic algorithms in cryptography is the One Time Pad (OTP) algorithm. OTP is an algorithm that uses a key along the plaintext and the key used must be random, therefore a random number generator is needed to be used as a key. One of the algorithms that can generate random numbers is the Linear Congruential Generator (LCG). The main purpose of this study is to describe the key generation process using the LCG algorithm, the message encryption process using the OTP algorithm, and the message decryption process using the OTP algorithm. The research method used is literature research. There are three stages of data processing in this research, namely the key generation process using the LCG algorithm, the message encryption process using the OTP algorithm, and the message decryption process using the OTP algorithm. The results obtained from this study are the LCG algorithm can meet the needs as a key because the key generated is a dynamic key with the condition that the length of the period must be greater than or equal to the length of the plaintext. The process of encoding messages using the OTP algorithm has a high level of security because the number of characters used is more and the process of sending messages is easier. The resulting ciphertext is a very random and unreadable message that is difficult to decipher, but in the decryption process the key used must be the same as the sender's. ARABIC: التشفير هو إحدى الطرق التي يمكن استخدامها لتأمين رسالة بحيث لا يمكن لأي شخص قراءة الرسالة. إحدى الخوارزميات الكلاسيكية في التشفير هي خوارزمية لوحة زمنية واحدة. لوحة زمنية واحدة عبارة عن خوارزمية تستخدم مفتاحًا على طول النص العادي والمفتاح المستخدم يجب أن يكونا عشوائيًا ، لذلك يلزم استخدام مولد رقم عشوائي كمفتاح. أحد الخوارزميات التي يمكن أن تولد أرقامًا عشوائية هو المولد التطابق الخطي الغرض الرئيسي من هذه الدراسة هو وصف عملية توليد المفاتيح باستخدام خوارزمية المولد التطابق الخطي، وعملية تشفير الرسائل باستخدام خوارزمية لوحة زمنية واحدة ، وعملية فك تشفير الرسائل باستخدام خوارزمية لوحة زمنية واحدة. طريقة البحث المستخدمة هي البحث الأدبي. هناك ٣ مراحل لمعالجة البيانات في هذا البحث ، وهي عملية إنشاء المفتاح باستخدام خوارزمية المولد التطابق الخطي، وعملية تشفير الرسائل باستخدام خوارزمية لوحة زمنية واحدة ، وعملية فك تشفير الرسائل باستخدام خوارزمية لوحة زمنية واحدة. النتائج التي تم الحصول عليها من هذه الدراسة هي أن خوارزمية المولد التطابق الخطي يمكنها تلبية الاحتياجات كمفتاح لأن المفتاح الذي تم إنشاؤه هو مفتاح ديناميكي بشرط أن يكون طول الفترة أكبر من أو يساوي طول النص العادي. تتمتع عملية تشفير الرسائل باستخدام خوارزمية لوحة زمنية واحدة بمستوى عالٍ من الأمان لأن عدد الأحرف المستخدمة أكثر وتكون عملية إرسال الرسائل أسهل. النص المشفر الناتج عبارة عن رسالة عشوائية جدًا وغير قابلة للقراءة ويصعب فك تشفيرها ، ولكن في عملية فك التشفير ، يجب أن يكون المفتاح المستخدم هو نفسه مفتاح المرسل

    A sorting improvement in the heuristic based on remaining available and processing periods to minimize total tardiness in progressive idling-free 1-machine preemptive scheduling

    Get PDF
    Проблематика. У плануванні завдань із перемиканнями, яке є частиною задач упорядковування на виробництві, однією з ключових цілей є отримання розкладу, загальне запізнювання якого було б мінімальним. Мінімізація загального запізнювання зазвичай зводиться до розв’язання комбінаторної задачі, що стає практично нерозв’язною, щойно кількість завдань і кількості їх періодів до обробки зростають. Щоб упоратися з цією проблемою, використовують евристики. Близькою до найкращої є евристика, у якій вирішальним співвідношенням є обернене значення максимуму пари залишкового періоду до обробки та залишкового наявного ресурсу. Однак ця евристика може складати розклади декількох робіт, загальне запізнювання яких є на 25 % більшим за мінімум, або й гірше. Тому ця евристика потребує коректувальної гілки, яка б надалі намагалася мінімізувати загальне запізнювання за певних умов. Мета дослідження. Встановити, що саме має бути скориговано в евристиці так, щоб значення загального запізнювання зменшилось. Евристика буде застосована до щільного поступального одномашинного планування з перемиканнями без простою, у якому моменти запуску завдань подаються у порядку зростання від 1 до кількості завдань, а моменти прийняття виконання завдань встановлюються щільно за моментами запуску. Неточність знаходження мінімального загального запізнювання у цій задачі планування має найбільш негативний вплив, тому вона є майже найгіршим випадком, який визначає межу точності евристики та безпосередньо слугує принципом мінімаксу, гарантуючи зменшення втрат за найгірших умов. Методика реалізації. Евристика сортує максимальні вирішальні співвідношення за моментами запуску завдань, віддаючи перевагу найбільш раннім завданням. Для досягнення зазначеної мети представляються три інші підходи до сортування та проводиться обчислювальне дослідження із застосуванням кожного з чотирьох евристичних підходів для мінімізації загального запізнювання. Для цього генеруються дві послідовності з 266000 і 1064000 задач планування. Результати дослідження. Підхід із сортуванням найбільш ранніх завдань забезпечує евристично мінімальне значення загального запізнювання у понад 97,6 % задач планування, але цей підхід не може мінімізувати загальне запізнювання у не менш ніж 2,2 % випадків. А втім, підхід із сортуванням за мінімізацією залишкових періодів до обробки виробляє евристично мінімальне загальне запізнювання майже для будь-якої задачі планування. Попри можливі винятки, цей підхід із сортуванням “програє” інших підходам дуже мало. Крім того такі винятки є надзвичайно рідкісними, оскільки було зафіксовано лише одну задачу планування (з 31914 випадків, відзначених одноособовими “перемогами” евристик), мінімальне загальне запізнювання якої досягається за підходом із сортуванням найбільш ранніх завдань. Висновки. Найкращою версією евристики є використання підходу із сортуванням за мінімізацією залишкових періодів до обробки. Однак наразі це підтверджується для випадку, в якому завдання не мають жодних пріоритетів. Випадок, за якого завдання мають ваги своїх пріоритетів, ще потрібно проаналізувати.Background. In preemptive job scheduling, which is a part of the flow-shop sequencing tasks, one of the most crucial goals is to obtain a schedule whose total tardiness would be minimal. Total tardiness minimization is commonly reduced to solving a combinatorial problem which becomes practically intractable as the number of jobs and the numbers of their processing periods increase. To cope with this challenge, heuristics are used. A heuristic, in which the decisive ratio is the reciprocal of the maximum of a pair of the remaining processing period and remaining available period, is closely the best one. However, the heuristic may produce schedules of a few jobs whose total tardiness is 25 % greater than the minimum or even worse. Therefore, this heuristic needs a corrective branch which would further try to minimize total tardiness under certain conditions. Objective. The goal is to ascertain what is to be corrected in the heuristic so that the total tardiness value could be obtained lesser. The heuristic will be applied to tight-tardy progressive idling-free 1-machine preemptive scheduling, where the release dates are given in ascending order starting from 1 to the number of jobs, and the due dates are tightly set after the release dates. In this scheduling problem, the inaccuracy of finding the minimal total tardiness has the strongest negative impact, so this is almost the worst case, which defines the accuracy limit of the heuristic and positively serves just as the principle of minimax guaranteeing decreasing losses in the worst conditions. Methods. The heuristic sorts maximal decisive ratios by release dates, where the scheduling preference is given to the earliest job. To achieve the said goal, three other sorting approaches are presented and a computational study is carried out with applying each of the four heuristic approaches to minimize total tardiness. For this, two series of 266000 and 1064000 scheduling problems are generated. Results. The earliest-job sorting ensures a heuristically minimal total tardiness value in more than 97.6 % of scheduling problems, but it fails to minimize total tardiness in no less than 2.2 % of the cases. Nevertheless, a sorting approach with minimizing remaining processing periods produces a heuristically minimal total tardiness for almost any scheduling problem. If an exception occurs, this sorting approach “loses” to the other sorting approaches very little. Moreover, the exceptions are quite rare as it has been registered just a one scheduling problem (out of 31914 cases followed by a sole “win” of a heuristic version) whose minimal total tardiness is achieved by the earliest-job sorting. Conclusions. The best heuristic version is that one which uses the sorting approach with minimizing remaining processing periods. This, however, is confirmed only for the case where jobs do not have any priorities. The case when jobs have their priority weights is to be yet analyzed.Проблематика. В планировании заданий с переключениями, которое является частью задач упорядочения на производстве, одной из ключевых целей является получение расписания, общее запаздывание которого было бы минимальным. Обычно минимизация общего запаздывания сводится к решению комбинаторной задачи, которая становится практически неразрешимой, как только количество заданий и количества их периодов до обработки возрастают. Чтобы решить эту проблему, используют эвристики. Близкой к наилучшей является эвристика, в которой за решающее соотношение берут обратную величину максимума пары остаточного периода до обработки и остаточного имеющегося ресурса. Однако эта эвристика может создавать расписания нескольких заданий, чьё общее запаздывание на 25 % больше минимума, или даже хуже. Поэтому эта эвристика требует корректировочной ветви, которая бы в дальнейшем пыталась минимизировать общее запаздывание в определённых условиях. Цель исследования. Установить, что именно должно быть скорректировано в эвристике так, чтобы значение общего запаздывания стало меньшим. Эвристика будет применена к плотному прогрессирующему одномашинному планированию с переключениями без простоя, в котором моменты запуска заданий подаются в порядке возрастания от 1 до количества заданий, а моменты приёма выполнения заданий устанавливаются плотно по моментам запуска. Неточность нахождения минимального общего запаздывания в этой задаче планирования имеет наиболее негативное влияние, поэтому она является практически наихудшим случаем, определяющим границу точности эвристики, и непосредственно выступает в качестве принципа минимакса, гарантируя уменьшение потерь в наихудших условиях. Методика реализации. Эвристика сортирует максимальные решающие соотношения по моментам запуска заданий, отдавая предпочтение наиболее ранним заданиям. Для достижения указанной цели представляются три других подхода к сортировке и проводится вычислительное исследование с применением каждого из четырёх эвристических подходов для минимизации общего запаздывания. Для этого генерируются две последовательности из 266000 и 1064000 задач планирования. Результаты исследования. Подход с сортировкой наиболее ранних заданий обеспечивает эвристически минимальное значение общего запаздывания в более чем 97,6 % задач планирования, но этот подход не может минимизировать общее запаздывание в не менее чем 2,2 % случаев. Тем не менее, подход с сортировкой по минимизации остаточных периодов к обработке производит эвристически минимальное общее запаздывание почти для любой задачи планирования. Вопреки возможным исключениям, этот подход с сортировкой “проигрывает” другим подходам очень мало. Более того, такие исключения чрезвычайно редки, поскольку было зафиксировано лишь одну задачу планирования (из 31914 случаев, отмеченных единоличными “победами” эвристик), минимальное общее запаздывание которой достигается по подходу с сортировкой наиболее ранних заданий. Выводы. Наилучшей версией эвристики является использование подхода с сортировкой по минимизации остаточных периодов к обработке. Однако пока это подтверждается для случая, в котором задания не обладают какими-либо приоритетами. Случай, в котором задания наделены весами своих приоритетов, ещё предстоит проанализировать

    Fast and Robust Vectorized In-Place Sorting of Primitive Types

    Get PDF
    Modern CPUs provide single instruction-multiple data (SIMD) instructions. SIMD instructions process several elements of a primitive data type simultaneously in fixed-size vectors. Classical sorting algorithms are not directly expressible in SIMD instructions. Accelerating sorting algorithms with SIMD instruction is therefore a creative endeavor. A promising approach for sorting with SIMD instructions is to use sorting networks for small arrays and Quicksort for large arrays. In this paper we improve vectorization techniques for sorting networks and Quicksort. In particular, we show how to use the full capacity of vector registers in sorting networks and how to make vectorized Quicksort robust with respect to different key distributions. To demonstrate the performance of our techniques we implement an in-place hybrid sorting algorithm for the data type int with AVX2 intrinsics. Our implementation is at least 30% faster than state-of-the-art high-performance sorting alternatives
    corecore