remixman's blog

การหาผลรวมของ sub-array ในเวลา constant time

การหาผลรวมของ sub-array เป็นปัญหาพื้นฐานอันหนึ่งที่พบเจอได้บ่อย ลักษณะของปัญหาคือ ให้อาร์เรย์ $A$ ที่มีขนาด $n$ มา จากนั้นถามว่าผลรวมของ sub-array ตั้งแต่สมาชิกตัวที่ $i$ จนถึงตัวที่ $j$ มีค่าเป็นเท่าไหร่

ลองดูตัวอย่างของปัญหาเพื่อให้ชัดเจนขึ้นนะครับ ให้อาร์เรย์ $A$ มีขนาด 8 และมีสมาชิกตามรูป ถามว่าผลรวมของสมาชิกตัวที่ 2 ถึง 6 มีค่าเป็นเท่าไหร่

Taxonomy upgrade extras: 

วัด Memory Bandwidth ของเครื่องคอมพิวเตอร์ด้วย STREAM

ในการสร้างและนำคอมพิวเตอร์มาใช้งาน เราต้องการที่จะรู้ว่าแต่ละเครื่องที่ถูกสร้างขึ้นมีประสิทธิภาพมากน้อยต่างกันแค่ไหนบ้าง ซึ่งโดยทั่วไปเราใช้ benchmark หลายแบบในการวัดประสิทธิภาพของเครื่องในด้านต่างๆ เช่นความสามารถในการคำนวณ ความเร็วของ network เป็นต้น แต่การวัดอีกอันหนึ่งซึ่งมีความสำคัญมากไม่แพ้กันคือการวัด memory bandwidth ของเครื่อง

Taxonomy upgrade extras: 

การปรับ Clock Frequency ของ NVIDIA GPU

Clock Frequency มีผลอย่างมากกับประสิทธิภาพของการประมวลผล ยิ่งความถี่สูงก็ยิ่งทำให้ Processor สามารถ Execute คำสั่งได้เร็วขึ้น ใน CPU เราอาจจะทำคุ้นเคยกับการทำ Overclock เพื่อเพิ่ม Clock Frequency แต่ใน GPU ก็สามารถทำได้เช่นเดียวกัน ด้วยวิธีการดังต่อไปนี้

ตัวอย่างเครื่องที่ผมใช้จะเป็น K40 ทั้งหมด 2 ตัวนะครับ

ก่อนอื่นตรวจสอบดูก่อนว่าการ์ดของเรารองรับความถี่เท่าไหร่บ้าง เราสามารถปรับความถี่ได้แค่ที่มีอยู่ในรายการเท่านั้นนะครับ วิธีการเช็คความถี่ที่รองรับคือใช้คำสั่ง

Taxonomy upgrade extras: 

Ranking มาจากวิธีวัด - จาก HPL สู่ HPCG

เราต่างก็คุ้นเคยกับการจัดอันดับของสิ่งต่างๆ เป็นอย่างดี ไม่มีว่าจะเป็นอันดับความอร่อยของร้านอาหาร อันดับผลการเรียน อันดับประสิทธิภาพการทำงาน และอื่นๆ ซึ่งเมื่อมีการจัดอันดับก็หมายถึงว่าจะต้องมีวิธีการวัดค่าอะไรบางอย่างเพื่อให้สามารถจัดอันดับได้ ถ้าไม่มีวิธีการวัดก็คงไม่มีค่าออกมาเพื่อเปรียบเทียบ หรือถ้าวิธีการวัดคลุมเครือการจัดอันดับที่ได้ก็คงจะไม่น่าเชื่อถือเท่าไหร่

Taxonomy upgrade extras: 

Monty Hall Problem - เมื่อความจริงและความรู้สึกไม่ไปด้วยกัน

ผมชอบปัญหา Monty Hall Problem มาก เมื่อครั้งแรกที่ได้ยินก็รู้สึกว่ามีอะไรชวนประหลาดพอสมควร เลยคิดว่าจะเอามาเล่าต่อสักหน่อย เริ่มจากการอธิบายก่อนแล้วกันนะครับว่ามันคืออะไร

Taxonomy upgrade extras: 

วิธีการ Parse JSON ขนาดใหญ่ใน Android

ยามเช้าในวันที่อากาศไม่ค่อยจะสดใสวันหนึ่ง ผมได้รับแจ้งจาก User ผู้ใช้งานแอป miimai ว่าเกิดปัญหาในการใช้งานบางอย่างขึ้น และได้ Report ข้อผิดพลาดมาให้ผมเรียบร้อยแล้ว ผมก็เลยรีบไปเปิดดูข้อมูลในทันใดและพบว่าเป็น OutOfMemoryError ตอนที่เห็นทีแรกยังค่อยข้างงงอยู่บ้างว่ามันเป็นไปได้ยังไง ปกติแล้วแอปแทบจะไม่ใช้ Memory เลยด้วยซ้ำ

ผมค่อยๆ ไล่ดูบรรทัดที่เกิดปัญหาและพบว่ามันมาจากบรรทัดนี้

Taxonomy upgrade extras: 

Derangement การเรียงสับเปลี่ยนที่ไม่มีของชิ้นใดอยู่ที่เดิม

สมมติว่าคุณมีนิยายอยู่เรื่องหนึ่งที่มีความยาวทั้งสิ้น $n$ เล่มจบ แล้วคุณเกิดอยากลองสลับการวางแต่ละเล่มโดยที่ไม่มีเล่มใดอยู่แหน่งเดิมเลย (เช่น เล่ม 1 ไม่อยู่ตำแหน่งที่ 1, เล่ม 2 ก็ไม่อยู่ในตำแหน่งที่ 2 รวมถึงเล่มอื่นๆทุกเล่ม) ถามว่าคุณสามารถเรียงนิยายของคุณได้กี่วิธี?

Taxonomy upgrade extras: 

Zeal เครื่องมือสำหรับดู Document ภาษาต่างๆแบบ offline

สำหรับโปรแกรมเมอร์แล้ว การเปิด Document ของแต่ละภาษานั้นคงจะไม่ใช่เรื่องแปลกแต่ประการใด เพราะคงไม่มีใครที่จำ API หรือฟังก์ชันที่มีให้ได้ทั้งหมด ยิ่งในปัจจุบันที่มี framework และภาษาใหม่ๆออกมาให้เลือกใช้กันมากหน้าหลายตาแล้ว การเปิด Document ก็ยิ่งมีความสำคัญเข้าไปอีก

เครื่องมือที่หลายคนใช้สำหรับการเข้าถึง Document เหล่านั้นก็อาจจะเป็น Google ซึ่งสามารถค้นหาได้ทันใจ และสะดวกมากทีเดียว แต่เกิดถ้าตอนนั้นไม่มีอินเตอร์เน็ตหรือว่าไม่สะดวกที่จะเข้าล่ะ?

Taxonomy upgrade extras: 

Pages

Subscribe to RSS - remixman's blog