Archive

Posts Tagged ‘ติดตั้ง’

การติดตั้งและใช้งาน Mathematica บนระบบ Rocks Clusters

February 9th, 2012 Comments off

พอดีมีโอกาสได้ติดตั้งและทดลองใช้งาน Mathematica บนระบบ Cluster ของหน่วยงานหนึ่ง ก็เลยจะมาเล่าให้ฟังครับ ระบบ Cluster ที่พูดถึงนี้ใช้ระบบ Rocks Clusters (www.rocksclusters.org) ซึ่งก็คือ Linux ที่มีการเพิ่มความสามารถการจัดการ Cluster เข้าไป งานที่ระบบ Cluster นี้ถูกใช้จะเป็นงานคำนวณด้วย software หลักๆอย่าง Gromacs, NAMD, NONMEM, R และก็ที่หน่วยงานนี้เขียนขึ้นกันเองโดยใช้ mpi บ้าง

license ของ Mathematica ที่ได้มานี้เป็นแบบ network ครับ นั่นหมายความว่าเราต้องทำการติดตั้ง Mathematica License Manager หรือ mathlm ก่อน  ซึ่งผมก็ได้ลง mathlm ไว้บน server อีกตัวซึ่งเป็นระบบ Windows server 2008 ที่หน่วยงานนี้เค้าใช้เป็น license server สำหรับโปรแกรมตัวอื่นๆด้วย ในการลงก็ไม่ได้ยุ่งยากอะไรครับเพียงแต่ตอบคำถามไปเรื่อยๆ 🙂  พอลงเสร็จ Mathlm มันก็จะ start ตัวมันเองอัตโนมัติครับ (ลองดูรายละเอียดเพิ่มเติมที่http://reference.wolfram.com/mathematica/tutorial/InstallingMathLM.html)

มาที่ตัว head node หรือตัวหลักของ cluster ผมก็ติดตั้ง Mathematica โดยใช้ตัวติดตั้งสำหรับ Linux  ซึ่งไฟล์ที่ผมได้มาเป็นไฟล์ขนาดประมาณ 1.2 GB ชื่อ Mathematica_8.0.4_LINUX_MachineSpecific.sh ในการติดตั้งผมก็เพียงแค่พิมพ์

./ Mathematica_8.0.4_LINUX_MachineSpecific.sh

ที่terminal ครับ จากนั้นก็ตอบคำถามไปเรื่อยโดยผมให้ตัว Mathematica นี้ติดตั้งตัวมันเองที่ /share/apps/Wofram/Mathematica/8.0 (/share/apps นี้เป็นdirectory ที่ทุกเครื่องใน cluster จะมองเห็น) และตัวคำสั่งในการเรียกใช้งาน (เช่น mathematica, math, MathKernel) ให้ติดตั้งไว้ที่ /share/apps/Wolfram/Mathematica/8.0/bin ในตอนที่ต้องใส่รหัสผมก็เลือกติดตั้งแบบ network โดยระบุชื่อของ license server ที่เราลง mathlm ไป

หลังจากนั้นเพื่อที่จะให้ users ทุกคนสามารถเรียกใช้งานได้ ผมก็สร้างไฟล์ชื่อ mathx.sh ไว้ที่ /share/apps/profile/ (จริงๆแล้วสร้างไว้ที่ไหนก็ได้ครับ) โดยในไฟล์นี้จะมีบรรทัดนี้อยู่ครับ

export PATH=”/share/apps/Wolfram/Mathematica/8.0/bin/:$PATH”

หลังจากนั้นก็ copy ไปไว้ที่ /etc/profile.d/ ของทุกเครื่องใน cluster ซึ่งการ copy ไฟล์ไปยังเครื่องลูก หรือ compute nodes นั้นในระบบของ rocks clusters เราสามารถใช้คำสั่งนี้ได้เลยครับ

rocks run host “cp /share/apps/profile/mathx.sh /etc/profile.d/”

ในการเรียกใช้งาน Mathematica เราก็เลือกจากเมนูหรือจะพิมพ์ Mathematica ที่ terminal ได้เลยครับ

 

การใช้งานคำนวณแบบ parallel หรือแบบขนานใน Mathematica นั้นไม่ยากเลยครับ คำสั่งหลักๆก็พวกที่ขึ้นต้นด้วย Parallel ทั้งหลายครับ ตัวอย่างที่ผมทดลองด้านล่างนี้ผมก็เอามาจากตัวอย่างใน Mathematica ครับ โดยอันแรกนี้ทดลองเรียกใช้งานโดยใช้คำสั่ง ParallelEvaluate ซึ่งมันจะโหลด Mathematica kernel เพื่อรันในแต่ล่ะ cpu core ของตัว head node ของ cluster หรือ local ซึ่งมี 8 cpu cores (Mathematica เรียก kernel ที่ถูกรันบนแต่ละ core ของ CPU แบบนี้ว่า subkernel ครับ โดยที่ตัว kernel หลักหรือ master kernel จะมี KernelID=0 ครับ)

การคำนวณแบบ parallel บนระบบของ cluster อย่างเช่น Rocks clusters นี้เราต้องทำการโหลด subkernel ไปไว้บนทุกๆ cpu cores ในแต่ละ compute node (เครื่องลูก) ที่เราต้องการใช้งาน ตัวอย่างอันที่สองนี้ผมทดลองเรียก subkernel โดยใช้ คำสั่ง LaunchKernels[RemoteMaching[]] จาก package ชื่อ SubKernels`RemoteKernels ซึ่งมากับ Mathematica (รายละเอียดสามารถดูได้จาก help ของ Mathematica เองครับ) เพื่อรัน subkernel จำนวนทั้งหมด 96 subkernels ในเครื่อง compute nodes จำนวน 8 เครื่องโดยมีจำนวน subkernels ที่ต้องการแตกต่างกันไปในแต่ล่ะเครื่อง

ซึ่งพอหลังจากที่เราโหลด subkernel เรียบร้อยแล้วเราก็สามารถใช้คำสั่งพวก parallel ทั้งหลายได้ครับ

ส่วนในกรณีที่จะใช้งานในแบบ text mode ผ่าน SGE ก็สามารถทำได้ง่ายๆตามนี้ครับ
ก็สร้างไฟล์ SGE สำหรับไว้ส่งไปรันเช่น run.job

#!/bin/bash
#$ -pe mpich 16
#$ -S /bin/bash
#$ -cwd
#$  -j y
cp -v $TMPDIR/machines TMP_machines
/share/apps/Mathematica/8.0/bin/math -run “<< testrun.math”

 

โดยที่ testrun.math ก็คือ Mathematica codes ที่ต้องการคำนวณ เช่น

Needs[“SubKernels`RemoteKernels`”]

$RemoteCommand= “ssh `1` -n -l `3` \”/share/apps/Mathematica/9.0/bin/math -mathlink -linkmode Connect `4` -linkname `2` -subkernel -noinit >& /dev/null &\””

hosts=Import[“TMP_machines”,”List”]

imin=2;
imax=Length[hosts];

Table[
Print[“starting Kernel: “,i,” on “,hosts[[i]]];
LaunchKernels[RemoteMachine[hosts[[i]]]];,
{i,imin,imax}]

id=ParallelEvaluate[$ProcessID];
AppendTo[$Echo,”stdout”]
Print[“Kernels: “, id//Length]
Print[“Prime Number Test – Parallel”]

data=Parallelize[Table[PrimeQ[n! + 1],{n,400,550}]]//AbsoluteTiming;

data2=Table[PrimeQ[n! + 1],{n,400,550}]//AbsoluteTiming;

Print[“Parallel: “,data[[1]]]
Print[“Not Parallel; “,data2[[1]]]

Exit[]

ซึ่งในกรณีของตัวอย่างนี้ Mathematica จะรันตัว subkernel เองอัตโนมัติบน CPU ที่ SGE กำหนด ตามจำนวนที่เราต้องการ ด้วยคำสั่ง LaunchKernels[n]  โดยที่ n นี้ก็คือจำนวน subkernels ที่เราต้องการใช้ในการคำนวน ซึ่งจะต้องเท่ากับจำนวน CPU ที่เรากำหนดในบรรทัด

#$ -pe mpich n

การติดตั้ง package ของ R เพิ่ม

January 27th, 2011 Comments off

การติดตั้ง package ของ R เพิ่ม สำหรับบน Linux ครับ

1. ติดตั้งจาก source

source ที่พูดถึงก็เป็นพวกไฟล์ package ที่มีสกุล tar.gz ที่สามารถ download ได้จากเวบ http://www.r-project.org/ หรือ http://cran.r-project.org/mirrors.html  หลังจากที่ download มาแล้วเก็บไว้ที่ เช่น /home/MyAccount/Rlib ก็สามารถพิมพ์คำสั่งนี้ได้เลย

$ R CMD INSTALL ชื่อไฟล์.tar.gz -l /home/MyAccount/Rlib/

2. ติดตั้งจากเวบ CRAN โดยตรง

พิมพ์คำสั่งนี้ใน R console สำหรับติดตั้ง package ที่ต้องการไว้ที่ /home/MyAccount/Rlib

> install.packages(“ชื่อ package”, lib=”/home/MyAccount/Rlib/”)

หลังจากติดตั้งแล้วจะเรียกใช้ก็ให้พิมพ์ใน R console คำสั่ง นี้ครับ

library(“ชื่อ package”, lib.loc=”/home/MyAccount/Rlib/”)

ถ้าหากมีปัญหาว่าต้องโหลดผ่าน proxy ก็ให้ลอง export http_proxy=”http://proxy:port” ดูครับ

3. ติดตั้งจาก github

กรณีที่อยากติดตั้ง package ที่อยู่บน Github เราสามารถทำได้โดยใช้คำสั่ง install_github ของ devtools ครับ เช่น

library(devtools)

install_github(“package”)

หรือถ้าต้องการระบุ path ที่จะเก็บpackageนี้ด้วยก็ทำได้โดยใช้ with_libpaths เช่น

with_libpaths(new=”/home/MyAccount/Rlib”, install_github(“package”))

Thai Latex บน Fedora 14 LXDE Desktop

January 24th, 2011 No comments

การติดตั้ง Thai Latex บน Fedora 14 LXDE Desktop

วิธีนี้ต้องมี gcc compiler ก่อนนะครับ ซึ่งติดตั้งได้เลยจากตัว Add/Remove Software

ก่อนอื่นต้องไป download ไฟล์พวกนี้ก่อนนะครับ

  1. ftp://linux.thai.net/pub/ThaiLinux/software/libthai/libdatrie-0.2.4.tar.gz
  2. ftp://linux.thai.net/pub/thailinux/software/thailatex/thailatex-0.4.4.tar.gz
  3. ftp://linux.thai.net/pub/thailinux/software/swath/swath-0.4.0.tar.gz

หลังจากนั้นก็แตกไฟล์พวกนี้ออกโดยที่อยู่folder ของใครของมัน

จากนั้นก็เริ่มติดตั้งโดยเริ่มที่ตัว libdatrie ก่อนครับ

ที่ terminal ก็เปลี่ยน folder ไปที่ folder ของ libdatrie จากนั้นก็พิมพ์

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

ตามด้วย

./configure

และ

make install

หลังจากนั้นก็ติดตั้ง swath โดยทำเช่นเดียวกันครับคือพิมพ์ ./configure แล้วตามด้วย make install

ต่อด้วย thailatex ครับทำเช่นเดียวกันกับ swath

เป็นอันว่าเสร็จแล้วครับ ผมใช้งานได้ไม่มีปัญหาครับ

ผมใช้ TexMakerX ในการแก้ไขไฟล์ Latex ครับ อาจต้องมีการปรับแต่งให้มันอ่านและบันทึกภาษาไทยโดยไปที่ Edit -> Setup Encoding… แล้วเลือก TIS-620 ครับ

%d bloggers like this:
Locations of visitors to this page