featured

Cython: semudah Python & secepat Java, bahkan lebih

Beberapa waktu yang lalu saya menulis sebuah artikel yang membandingkan performa 7 bahasa pemrograman ketika memproses 3 operasi dasar: “if”,”for”, & “while”.  Beberapa bahasa pemrograman seperti Matlab, PHP, R, & Python memiliki keleluasaan antara sebuah interpreter dan compiler, bahkan diantara keduanya (JIT). Artikel kali ini akan memperkenalkan Cython (compiled Python) dan melihat peningkatan performanya dibandingkan versi murni Python, JIT, dan Java.

Apakah PyThon Lambat ? : Showdown 7 Bahasa Pemrograman

Semenjak SMU, saya pernah menggunakan/mempelajari beberapa bahasa pemrograman: Basic, Pascal, Visual Basic, C++, Fortran, ActionScript, Java, R, Matlab, PHP, dan baru kurang dari 1 bulan ini PyThon. Di Data Mining (bidang penelitian saat ini), pilihan bahasa pemrograman yang biasa digunakan adalah R, PyThon, C++, atau Matlab. Diluar itu library data mining/machine learning-nya terlalu sedikit. R saya keluarkan dari pilihan, karena akhir-akhir ini kebetulan sering bantu istri pakai R di riset PhDnya (Bayesian model), dan “bagi saya pribadi” pengalaman menggunakannya sangat tidak menyenangkan (baik dari performa maupun kemudahan dalam menggunakan). C++ is a beast, tapi codingnya kelamaan dan tidak multi-platform, saya diburu waktu untuk menyelesaikan pekerjaan secepat mungkin. C++ buat project penting saja, terutama saat ‘produksi’. Akhirnya untuk saat ini pilihannya jatuh ke Matlab atau PyThon ? Now let the duel begin … 🙂

High Performance Computing (HPC) for Big Data – Bagian 1: Teori/Konsep

Komputasi dengan performa tinggi (High Performance Computing-HPC) biasa dilakukan ketika permasalahan (model) yang dihadapi kompleks atau ketika data (domain/permasalahan) besar. Untuk menyelesaikan permasalahan besar/komplex tersebut, sebuah komputer dengan performa tinggi biasanya digunakan. Arsitektur komputer modern dengan performa tinggi memiliki prosesor CPU (& GPU) yang cukup banyak untuk membantu menyelesaikan masalah tersebut. Sebelum era Big Data, HPC hanya fokus pada bagaimana permasalahan dipecah menjadi sub masalah dan diselesaikan secara bersamaan (parallel/concurrent) se-efisien mungkin. Karena data yang relatif kecil, total komunikasi antara Prosesor dan memori tidak signifikan dibanding lamanya komputasi yang dilakukan. Namun hal ini tidak lagi tepat ketika datanya besar. Perubahan teknik pemrograman paralel apa saja yang dibutuhkan ketika datanya besar? Post ini adalah catatan kecil dari beberapa pengalaman saya ketika melakukan pemrograman paralel ketika datanya besar (Bagian 1 lebih ke Teori/Konsep, nanti di Bagian 2 merupakan teknis/penerapan dari apa yang dijelaskan di Bagian 1).

Big Data, Privasi, dan Terorisme

Belum lama ini isu tentang adanya sistem Big Data Cyber Security (polisi internet) sempat menyebar dengan cepat melalui media sosial dan menghebohkan masyarakat. Pengaplikasian teknologi big data untuk keamanan seringnya dituding menjadi ancaman hak kebebasan berekspresi atau privasi yang merupakan bagian penting dari hak konstitusi warga pada sebuah sistem demokrasi. Walau berita ini telah diklarifikasi oleh Kementerian Komunikasi dan Informatika Oktober lalu, namun Sampai sejauh manakah sebenarnya kekhawatiran ini beralasan?

Kompilasi Public/Open Dataset

Open/Public Dataset bermanfaat untuk beberapa hal:
Saat mengerjakan project (e.g. aplikasi online/GIS) yang membutuhkan data sebagai input.
Saat mengajar mata kuliah di Statistik, Data Mining, atau Machine learning, sebagai ilustrasi bagaimana suatu model bekerja dan properties-nya.
Saat memberi tugas ke mahasiswa di mata kuliah-mata kuliah tersebut diatas.