分类 软件 下的文章

修改表中列的属性

use study;
alter table course alter column cname varchar(20);

将数据库文件连接到当前数据库

exec sp_attach_db @dbname='imported_db_name', @filename1='/path/to/mdf/file'
go

查询用户的权限与角色

exec sp_helprotect NULL, 'Esper';  --grants
exec sp_helpuser 'Esper';  --roles

一直以为Release和Debug的区别只是生成的代码不同,没想到这次被这个观点坑了一上午。 事情发生在配置完OpenCV后。 在编写测试程序,调用imread时,总是报如下错误: unresolved external symbol "bool __cdecl cv::imwrite... 回过头去看VS的配置,compiler的include和lib配置好了,linker的lib也配置好了(注:linker的additional libs支持*通配符) 在网上转了一上午,没有任何进展。直到神奇的StackOverflow再次登场 [click me],才发现了问题所在: 我的OpenCV是用Release配置的。 而测试项目的编写用的是Debug配置。不记得之前在哪里看过了,Debug配置生成的库文件会在文件名末尾加一个d,里面的内容也肯定和Release不一样。将项目配置改为Release,问题解决。

果然跟巨硬扯上关系的都是消耗时间的怪物。阿伟死了

最近在OpenCV方面有一些需求,需要使用GPU来进行一些图像处理。首先的想法当然就是Python解决了,但是在国内外逛了一整圈之后,发现并没有什么收获。从某度获得的信息模棱两可,一旦同时提到OpenCV和GPU,基本上就是教怎么配环境的;而StackOverflow上很直接的给出了答复:不能

但是在挑战面前,程序员是不会轻言放弃的(PM:真香)。于是打算动手直接撸C++代码,再给Python调用。说完就开始动手,给VS配置环境。于是第一个问题来了——考虑到电脑空间问题,目前装的是VS2013,而官网上给出的预编译包支持的VS版本是2015和2017。虽然说理论上问题不大,但还是没有这么试,毕竟之前一个2015版的asmhighlighter插件就把我折腾的够呛,最后还没成功。

在网上看了一篇博客之后,受到启发,决定自行编译。在官网上取到安装包,去sourceforge上拿一个cmake-gui,然后就开始了第一次编译。

OpenCV 4及以上的版本就不要考虑了。这些版本使用了C++11语法,而在VC12开发的时代并没有完全支持C++11规范 ->通过编译报错可以看出,诸如NORETURN一类的语法会在VS2013报错,且官方也对于各版本的C++11支持情况做了说明

===========下面是不详细的步骤===========

Where is the source code: 这里填解压后源码的根目录 Where to build the binaries: 这里放的可能是最终的程序,也可能是类似于“安装程序”一类的临时文件。若是后者的话,安装目录还需要在cmake里手动指定修改。 然后Configure,选择VS2013(vc12)对应的64位选项。把相关项的信息修改,该勾上的勾上,该填写的目录填写一下,再Configure。新出现的条目是红色的。重复该步骤,直至没有新的红色条目出现为止。比较重要的是记得把WITH_CUDA勾上。 然后Generate生成给VS编译用的项目结构,再Open Project,在VS中编译获得成品即可。

在编译时,去掉了python模块的编译,加上了OpenBLAS库和cuda选项,然后右键INSTALL生成。

该部分可以分为两个步骤:编译和安装(make && make install) 即可以通过等价的以下方式,共两步实现,1)右键BUILD_ALL生成;2)右键INSTALL仅生成该项目

目前编译器情绪稳定。

VS中编译时,涉及到cuda部分的编译速度好像特别慢。别人说要编译六个小时我还不信来着。 最终统计:编译时间约为3小时。 编译完成,五六千个警告。没有错误,问题不大

后续是小型阿伟去世现场,参见这里

  1. 固件工具,用于烧写ib卡的固件和查询相关信息:Mellanox Firmware Tools (MFT)

安装过程

tar xf mft-4.11.0-103-x86_64-rpm.tgz
cd mft-4.11.0-103-x86_64-rpm
sudo ./install.sh

接下来会自动检测环境,提示用户补充安装缺少的软件包。 CentOS 7 Core缺少的如下: sudo yum install -y gcc rpm-build kernel-devel

  1. 在检测完固件之后,选择相应版本的驱动下载:Mellanox OpenFabrics Enterprise Distribution for Linux (MLNX_OFED) 可以选择历史版本。所有版本对应支持的固件列表参考如下: http://www.mellanox.com/page/mlnx_ofed_matrix?mtag=linux_sw_drivers

系统环境是CentOS 7.6,但是ib卡的固件版本只有2.33.5000,处于各种原因,既不打算换系统,也不打算烧固件,于是打算强上老驱动试试。 然后。。炸了,编译错误,还是C语言层面的,不管了,直接上最新驱动

不更新固件 -> --without-fw-update mxm需要gui,丢掉 -> --without-mxm 缺失的软件包: sudo yum install -y tcl tcsh tk lsof libxml2-python pciutils perl

然后就开始安装,应该没有问题了 配ip,方法就跟配Ethernet一样的

sudo service openibd restart
sudo ip addr add <ip-addr>/<netmask> dev <devname>

netperf测试网络质量: 直接用github上的源码编译安装(推荐使用release),需要在被连接测试的服务器上运行netserver命令,该命令自带于已安装好的netperf中。 然后在主动连接的主机上运行以下命令:

netperf -H 10.0.0.30 -t omni -- -d rr -O "THROUGHPUT, THROUGHPUT_UNITS, MIN_LATENCY, MAX_LATENCY, MEAN_LATENCY"

-H选项用于指定主机。