Showing posts with label komputer. Show all posts
Showing posts with label komputer. Show all posts

Wednesday, June 05, 2024

Rekomendasi direktori untuk penyimpanan data

Ketika bekerja dalam tim, atau dengan tim, tempat penyimpanan data menjadi masalah. Si A menyimpan data di "download", si B di "my document", dan si C di "Files". Untuk menyamakan tempat penyimpanan data di komputer, saya merekomendasikan hal berikut.

Komputer dengan satu harddisk (SSD/HDD)

Untuk komputer dengan satu hardisk, tempat penyimpanan data terbaik adalah di "home", atau "/home/$USER/data", dimana $USER adalah nama user, misal "bagus" (sehingga menjadi "/home/bagus/data"). Di Linux, kita hanya butuh mengetik "cd" untuk "pulang ke rumah". Untuk memanggil path "data", siapapun usernya, dalam python, kita bisa menggunakan Path dari pathlib berikut.

from pathlib import Path
data = Path.home() / "data"

Oya, di era sekarang ini, kita tidak perlu membuat partisi tersendiri untuk data. Beda dengan zaman saya kuliah dulu yang perlu mempartisi satu HDD menjadi beberapa drive agar ketika drive satu rusak, drive lainnya masih bisa digunakan.

Komputer dengan multi harddisk

Untuk komputer dengan multi harddisk, tempat penyimpanan data yang saya rekomendasikan adalah di root, yakni "/data". Siapapun usernya, pathnya pasti akan sama dalam hal ini.

Pro-kontra:

Kenapa satu harddisk di "home" dan multi-hardisk di "/data"? Sebetulnya "/data" lebih universal karena tidak bergantung "User", namun karena lokasinya di "/" (root), menurut saya hal ini rentan masalah. Misalnya jika sistem korup atau clash, biasanya data di bawah root akan terkena juga. Alasan kedua karena sekuriti/akses terhadap root. Home bisanya lebih terisolasi.

Friday, June 29, 2018

Mengenal arsitektur MIPS: single-cycle vs pipelining

Arsitektur komputer merupakan hal yang menarik untuk dipelajari. Dengan memahami cara kerja komputer, khususnya processor, kita akan lebih mudah belajar IT, khususnya pemrograman dan komputasi. Masalahnya processor era modern menggunakan sistem yang kompleks, contohnya seperti i9, i7, m3 maupun processor buatan AMD dan IBM. Untuk mempelajari cara kerja processor, kita bisa memakai MIPS (Microprocessor without Interlocked Pipelined Stages), processor jaman baheula yang sudah tidak diproduksi di zaman ini [2]; namun konsepnya tetap digunakan oleh processor modern yang sekarang kita gunakan.

Secara umum, cara kerja processor dilihat dari data pathnya dapat dibagi menjadi dua yakni single-cycle dan pipelining.

Gb 1. Simple data path pada arsitektur MISP

Berdasarkan gambar diatas, bisa dijelaskan tahapan datapath pada eksekusi single-cycle sebagai berikut:
  1. PC (program counter): menahan alamat dari instruksi yang akan dieksekusi.
  2. Add: Menambahkan nilai dari PC(alamat saat ini) dengan nilai konstan 4, dan menghasilkan alamat tentatif untuk instruksi selanjutnya. (jika instruksi selanjutnya adalah percabangan dan syaratnya terpenuhi, maka alamat tersebut tidak dipakai).
  3. Add/ALU result: bagian ini menghitung alamat target selanjutnya (branch target address). Inputnya adalah PC+4 dan output dari konstan 16 bit yang di-sign extend menjadi 32 bit dan digeser kiri (left shifted) 2 bits.
  4. Mux: bagian ini menghasilkan alamat selanjutnya. Jika instruksi selanjutnya adalah conditional branch, maka output dari 3 dipilih, selainnya digunakan outout dari 2.
  5. Sign-extend: bagian ini meng-extend/memperluas input 16 bits menjadi 32 bit (dengan menambahkan 16 bit baru dengan "tanda" yang sama dengan bit paling kanan).
  6. Mux: memilih data yang akan ditulis pada register tujuan dari data yang dibaca dari memory dan data hasil perhitungan ALU.

Meskipun cara kerja processor single cycle diatas dapat bekerja dengan baik namun tidak dipakai di komputer modern karena:
  • Semua instruksi harus dieksekusi dalam satu siklus.
  • Lama waktu eksekusi merupakan jumlahan dari tiap instruksi, artinya jika ada instruksi yang dieksekusi cukup lama, maka instruksi lain akan menunggu,
Sebagai solusinya, diperkenalkan pipelining. Analogi yang cukup sederhana adalah proses mencuci, mengeringkan, menyetrika dan melipat/memasukkan lemari. Pada teknik single-cycle (satu siklus), semua tahapan dilakukan berurutan, mencuci dulu, setelah selesai baru dikeringkan, kemudian disetrika dan dimasukkan lemari, baru mencuci lagi. Pada teknik pipelining, sambil mengeringkan, kita bisa mencuci lagi, saat cucian pertama disetrika, cucian kedua dikeringkan, dan cucian baru (ketiga) bisa mulai dicuci. Dengan cara pipelining seperti ini, waktu pemrosesan menjadi jauh lebih sedikit. Gambarnya ditunjukkan seperti di bawah.

Tuesday, January 17, 2017

Mengganti HDD dengan SSD, CD-ROM dengan HDD

SSD (solid-state-drive) merupakan media penyimpanan baru berbasis bahan solid state. Berbeda dengan HDD (hard-disk-drive) yang menggunakan komponen berputar (motor) untuk membaca dan menulis pada disk (cakram), maka SSD secara teori (dan terbukti) memiliki lifespan yang lebih tinggi dan kecepatan read/write yang jauh lebih tinggi karena menggunakan media penyimpanan berupa solid state (1.7 Gb/s vs 134 MB/s!, lihat gambar di bawah). Simply speaking, dengan menggunakan SSD, proses booting PC kita berasa menyalakan TV: tekan power ON, tunggu beberapa detik, dan PC sudah siap. Berbeda dengan booting melalui HDD yang (umumnya) membutuhkan waktu beberapa menit. Tulisan ini menjelaskan pengalaman saya mengganti cd rom laptop menjadi harddisk pada dua laptop: MacBook Pro 12" 2012 dan Lenovo G580.

Kecepatan baca dan akses HDD (HGST)

Kecepatan baca dan akses SSD (WD NVME, bukan SATA, kecepatan baca hampir 2GBps)

Pada eksperimen pertama, saya menggunakan MacBook Pro A1278, i7, late 2013 (mid 2012 family). Kebetulan kabel fleksibel HDD ke motherboard rusak, sekalian saya mengganti kabel fleksibel, maka HDD saya ganti ke SSD, dan HDD lama saya pasang ke tempat CD-ROM dengan perantara HDD caddy. Ini adalah tampilan lama daleman Macbook saya sebelum saya pasangi SSD dan HDD caddy.






Wednesday, October 07, 2015

Membangun komputer cluster di VirtualBox dengan Rocks kit, Part 2: Testing

Setelah berhasil membangun dan menginstall kluster komputer di VirtualBox, saatnya untuk mengetes kluster tersebut dengan komputasi parallel. Goal yang ingin kita tuju adalah membagi job komputasi (berupa command/script) pada masing-masing node yang sudah kita tambahkan pada master node agar komputar tersebut lebih cepat.

Pertama kita tambahkan user agar bisa login ke kluster dengan perintah useradd (login as root in master),
useradd bagus1
useradd bagus2
passwd bagus1
passwd bagus2
rocks sync users
Perintah-perintah diatas akan menambahkan user (bagus2 dan bagus2), mengeset masing-masing password untuk user dan mensinkronkan user dari master ke nodes.

Sinkroniasi user antar compute nodes

Sunday, October 04, 2015

Membangun kluster komputer di VirtualBox dengan Rocks kit, Part 1: Instalasi

Mambangun kluster komputer sangat dibutuhkan untuk melakukan simulasi dan komputasi yang membutuhkan perfomansi tinggi (high performance komputing, HPC), salah satunya adalah pada superkomputer. Untuk membangun superkomputer dengan kluster, ada baiknya dilakukan simulasi dengan menggunakan virtualisasi, yakni dengan menggunakan VirtualBox. Tujuan tulisan ini adalah unutk membangun komputer kluster di VirtualBox dengan Rocks kit (www.rockscluster.org), sebuah open source kit (OS, operating system) untuk real dan virtual cluster.

Gambar infrastruktur yang akan kita bangun adalah seperti berikut,
Komputer kluster dengan 1 Master dan 2 Compute node
Sebelum masuk pada langkah-langkah development cluster ini, ada baiknya kita membiasakan dengan menu-menu VirtualBox seperti di bawah, jika sudah pernah memakainya, silakan lanjut pada step-by-step.

VirtualBox pada Linux Mint
Requirement :
  • Komputer yang sudah terinstall VirtualBox dengan space kosong minimal 30 GB dan RAM 4 GB
  • File ISO instalasi RocksCluster yang bisa di download disini.
 

Thursday, January 02, 2014

Belajar Sejarah, Keamanan dan Teknologi Internet Via Coursera: IHST

Internet merupakan media terbaik untuk belajar, namun belajar sejarah, keamanan dan teknologi internet sendiri juga merupakan bidang yang menarik. Coursera sebagai salah satu platform mooc terbesar saat ini telah menawarkan kelas IHST (Internet History, Security and Technology) dalam websitenya. Kuliah tersebut merupakan adopsi mata kuliah yang diampu oleh Dr. Chuck di University of Michigan.

Statement of Accomplishment

IHST membahas sejarah internet dan komputasi pada umumnya sejak perang dunia, dimana security menjadi masalah besar dan berdampak pada hasil perang antara sekutu dengan Nazy Jerman. Keberhasilan sekutu dalam memecahkan sandi Jerman merupakan titik balik kemenangan mereka. Pengembangan internet dan www yang diinisasi oleh CERN, awal-awal teknologi komputer seperti NexStep yang dikembangkan oleh Steve Jobs di Apple, perkembangan Microsoft dan Windows OS, technopreneurship di internet seperti Amazon-nya Jeff Bezos, evolusi browser dari Netscape menjadi Mozilla Firefox, maupun teknologi keamanan internet yang menggunakan private key dan public key menjadi silabus mata kuliah online IHST ini. Silabus lengkap IHST bisa dilihat pada halaman mata kuliah tersebut di Coursera.