继续阅读Matrix Multiplication with OpenCL
Matrix Multiplication with OpenCL
继续阅读Matrix Multiplication with OpenCL
Sourceforge
是一些开源软件经常用到的网站,然而国内的网站一直不稳定,如今是可以访问,但是一直无法下载,今天发现了一种新方法那就是 http://www.mirrorservice.org 这个网站,这个网站提供了众多网站的镜像,可以通过 web
或者 ftp
等方式来访问,看了下,里面的站点相当多。 但是版本可能比较老,最新的版本可能要多等一段时间。
今天新安装了一个 VMware ESXi 6.7
的系统,密码仍然用的习惯采用的密码。但在使用中,无论是使用 vSphere Client
连接,还是在 vCenter Server
中添加这台 ESXi
系统,都是提示密码不对,最后重置系统设置(密码清空),通过在 vSphere Client
设置新的密码的方法解决。下面简单回顾一下问题的现象及解决过程。
继续阅读VMware ESXi 6.7密码正确不能登录
近来增加了一台工控机,上面跑了软路由等业务,万一突然断电 ESXi
坏了启不了,估计就得废好大劲折腾了。以前有给群晖配过一台 APC BK650
的 UPS
,目前 UPS
的 COM
数据输出直接给到了群晖,毕竟无论如何也得优先保障群晖的可靠性。在群晖的设置里面看到过 UPS
服务器的选项,所以想着 ESXi
能不能连接群晖的 UPS
服务器,实现断电自动关机以保证数据安全。
目前 ( 2019/04/24 ),在 macOS Mojave
(10.14.4
)系统上使用 brew install octave
,安装 Octave 5.1.0
之后,使用 pause()
函数无法在点击键盘之后继续执行,除了 Ctrl + C
之外任意键都不响应。正常情况下,点击任意按键之后,应该继续执行后续的代码。
这个是目前使用 brew
安装的 Octave 5.1.0
在编译的时候,关联的库是 glibc 2.28
之后的版本。这个版本上 glibc 2.28
的某些行为发生变动。具体的讨论信息,参考 bug #55029: pause() with no arguments does not return like kbhit() with glibc 2.28 上的讨论。本质就是 glibc 2.28
之后的版本要求应用程序在接收信息结束( EOF
)之后,主动调用 clearerr (stdin);
,否则会收不到后续的按键通知。这个 BUG
在 Octave 5.2
版本被修复,但是这个版本何时发布,暂时不定。
目前的修复方式为要求 brew
从最新版本的代码编译安装,而不是安装已发布版本,如下:
1 2 3 4 5 6 7 8 9 10 |
$ brew uninstall --ignore-dependencies octave # 安装编译依赖 $ brew install texinfo $ wget https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/octave.rb $ sed -i "" "s/\"--enable-shared\"/\"--enable-shared\",\"--disable-docs\"/g" octave.rb $ brew install --build-from-source --HEAD -v octave.rb |
修改下载的编译配置文件,并且关闭文档编译( 目前文档编译会失败),也就是增加 --disable-docs
这个编译参数。
调整之后的编译脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 |
class Octave < Formula desc "High-level interpreted language for numerical computing" homepage "https://www.gnu.org/software/octave/index.html" url "https://ftp.gnu.org/gnu/octave/octave-5.1.0.tar.xz" mirror "https://ftpmirror.gnu.org/octave/octave-5.1.0.tar.xz" sha256 "87b4df6dfa28b1f8028f69659f7a1cabd50adfb81e1e02212ff22c863a29454e" revision 2 bottle do sha256 "6bb8497839d6f7872efcd6acad0216f443420e097a9b7fad44835823e1c0e735" => :mojave sha256 "d1de53a30f002d8b7ec3a6065994c46d8cbd4830aa7e199f572baff48723c6e6" => :high_sierra sha256 "7a648cff129ec85a5ee9417a0339a3b804756f7958585b707c015d322d220b15" => :sierra end head do url "https://hg.savannah.gnu.org/hgweb/octave", :branch => "default", :using => :hg depends_on "autoconf" => :build depends_on "automake" => :build depends_on "bison" => :build depends_on "icoutils" => :build depends_on "librsvg" => :build end # Complete list of dependencies at https://wiki.octave.org/Building depends_on "gnu-sed" => :build # https://lists.gnu.org/archive/html/octave-maintainers/2016-09/msg00193.html depends_on :java => ["1.6+", :build] depends_on "pkg-config" => :build depends_on "arpack" depends_on "epstool" depends_on "fftw" depends_on "fig2dev" depends_on "fltk" depends_on "fontconfig" depends_on "freetype" depends_on "gcc" # for gfortran depends_on "ghostscript" depends_on "gl2ps" depends_on "glpk" depends_on "gnuplot" depends_on "graphicsmagick" depends_on "hdf5" depends_on "libsndfile" depends_on "libtool" depends_on "pcre" depends_on "portaudio" depends_on "pstoedit" depends_on "qhull" depends_on "qrupdate" depends_on "qt" depends_on "readline" depends_on "suite-sparse" depends_on "sundials" depends_on "texinfo" depends_on "veclibfort" # Dependencies use Fortran, leading to spurious messages about GCC cxxstdlib_check :skip def install # Default configuration passes all linker flags to mkoctfile, to be # inserted into every oct/mex build. This is unnecessary and can cause # cause linking problems. inreplace "src/mkoctfile.in.cc", /%OCTAVE_CONF_OCT(AVE)?_LINK_(DEPS|OPTS)%/, '""' # Qt 5.12 compatibility # https://savannah.gnu.org/bugs/?55187 ENV["QCOLLECTIONGENERATOR"] = "qhelpgenerator" # These "shouldn't" be necessary, but the build breaks without them. # https://savannah.gnu.org/bugs/?55883 ENV["QT_CPPFLAGS"]="-I#{Formula["qt"].opt_include}" ENV.append "CPPFLAGS", "-I#{Formula["qt"].opt_include}" ENV["QT_LDFLAGS"]="-F#{Formula["qt"].opt_lib}" ENV.append "LDFLAGS", "-F#{Formula["qt"].opt_lib}" system "./bootstrap" if build.head? system "./configure", "--prefix=#{prefix}", "--disable-dependency-tracking", "--disable-silent-rules", "--enable-link-all-dependencies", "--enable-shared","--disable-docs", "--disable-static", "--with-hdf5-includedir=#{Formula["hdf5"].opt_include}", "--with-hdf5-libdir=#{Formula["hdf5"].opt_lib}", "--with-x=no", "--with-blas=-L#{Formula["veclibfort"].opt_lib} -lvecLibFort", "--with-portaudio", "--with-sndfile" system "make", "all" # Avoid revision bumps whenever fftw's or gcc's Cellar paths change inreplace "src/mkoctfile.cc" do |s| s.gsub! Formula["fftw"].prefix.realpath, Formula["fftw"].opt_prefix s.gsub! Formula["gcc"].prefix.realpath, Formula["gcc"].opt_prefix end # Make sure that Octave uses the modern texinfo at run time rcfile = buildpath/"scripts/startup/site-rcfile" rcfile.append_lines "makeinfo_program(\"#{Formula["texinfo"].opt_bin}/makeinfo\");" system "make", "install" end test do system bin/"octave", "--eval", "(22/7 - pi)/pi" # This is supposed to crash octave if there is a problem with veclibfort system bin/"octave", "--eval", "single ([1+i 2+i 3+i]) * single ([ 4+i ; 5+i ; 6+i])" end end |
最近在 OpenMediaVault 4.1.22-1(Arrakis)
进行磁盘文件占用分析的时候,发现磁盘空间异常占用问题,如下:
1 2 3 4 5 6 7 8 |
root@openmediavault:/media/6357625f-c966-49ba-9c90-9e8f8ff50433# du -ah --max-depth=1 0 ./lost+found 1.5T ./MyCloud 8.0K ./aquota.user 8.0K ./aquota.group 1.3T ./ext2_saved 4.0K ./WDMyCloudSync.sh 2.7T . |
这个 1.3T ./ext2_saved
文件是不存在的,并且没办法通过常规命令删除。
这个文件产生的原因是,执行过 从 EXT3/4
转换转化分区到 Btrfs
:
1 |
$ btrfs-convert /media/6357625f-c966-49ba-9c90-9e8f8ff50433 |
完成转换需要删除备份的 ext2_saved
子卷,否则空间会不能释放。 请注意,如果没了它(备份子卷),你将没办法还原回 EXT3/4
文件系统。
1 2 3 4 |
$ sudo apt-get install btrfs-tools # 执行,然后无视报错 $ btrfs subvolume delete /media/6357625f-c966-49ba-9c90-9e8f8ff50433/ext2_saved |
可能会报错:
1 |
ERROR: cannot access subvolume /media/6357625f-c966-49ba-9c90-9e8f8ff50433/ext2_saved: No such file or directory |
无视这个报错即可。
完成后再次查询文件占用空间:
1 2 3 4 5 6 7 |
root@openmediavault:/media/6357625f-c966-49ba-9c90-9e8f8ff50433# du -ah --max-depth=1 0 ./lost+found 1.5T ./MyCloud 8.0K ./aquota.user 8.0K ./aquota.group 4.0K ./WDMyCloudSync.sh 1.5T . |
可以看到空间已经被释放了。
家里用的思科 CISCO SG90D-08-CN
千兆 8
口交换机桌面型。 详细参数如下:
最近新入手了 群晖 DS718+
,鉴于群晖断电容易损坏硬盘的传说,为了保证设备的安全,特别购入了 APC BK650-CH UPS
。
APC BK650-CH UPS
有多个电源插槽,可以同时为多个设备提供断电保护,但是 APC BK650-CH UPS
只有一个 USB
设备接口,这个接口用来提供电源状态信息,比如是否断电,当前电量信息等数据。这就造成收到断电通知的只能有一个设备,这个设备必须通过网络通知其他设备,才能实现全部的断电通知。
继续阅读基于APC BK650-CH UPS连接群晖DS718+通过NUT(Network UPS Tools)实现WDMyCloud Gen1断电自动关机