Skip to content

Instantly share code, notes, and snippets.

View prasunanand's full-sized avatar
🕶️
Breaking stuff!

Prasun Anand prasunanand

🕶️
Breaking stuff!
View GitHub Profile
@prasunanand
prasunanand / pubseq-s3
Last active May 10, 2021 06:47
Syncing data from Penguin to OpenData S3 bucket
This gist lists down the steps to Sync data from Penguin to OpenData S3 bucket
# Installing s3cmd
```
ssh -i id_ecdsa -v username@penguin2.genenetwork.org
pip3 install --user s3cmd -v
export PATH=$PATH:~/.local/bin/
```
// To io.h add
void write_matrix(const gsl_matrix *matrix_U, const string suffix);
// To io.cpp, add
void write_matrix(const gsl_matrix *matrix_U, const string suffix) {
string file_str;
string file_out = "gemma_geno";
file_str = "./" + file_out;
// To io.h add
void write_matrix(const gsl_matrix *matrix_U, const string suffix);
// To io.cpp, add
void write_matrix(const gsl_matrix *matrix_U, const string suffix) {
string file_str;
string file_out = "gemma_geno";
file_str = "./" + file_out;
require_relative 'mkmf.rb'
extension_name = 'arrayfire'
nmatrix_path = Gem::Specification.find_all_by_name('nmatrix').compact
abort "Cannot locate NMatrix installation" unless nmatrix_path
nmatrix_header_dir = File.join(nmatrix_path[0].require_path)
$INSTALLFILES = [
['ruby_arrayfire.h' , '$(archdir)'],
FasterLMMD vs LMMLite
=============================================================================
Question:
=============================================================================
Why have you used a different approach from pylmm for calculating:
1. beta ?
https://github.com/kbroman/lmmlite/blob/master/src/lmm.cpp#L150
---
layout: post
title: "ArrayFire Bindings Part - I : Installation "
date: 2017-06-22 18:18:41 +0530
categories: ruby gem c-extensions c++-extensions
comments: true
---
I have been working on creating ArrayFire bindings for Ruby. ArrayFire is an opensource
lbrary that is very useful and highly po[ular for GPGPU computings. It has strong abstracts that makes
---
layout: post
title: "Ruby C extensions for complex projects"
date: 2017-06-13 18:18:41 +0530
categories: ruby gem c-extensions c++-extensions
comments: true
---
In this blog and a few others that will follow, I would share my expereiences creating
Ruby Bindings for C/C++ libraries. It covers a practical example rather than a
# Abstract
We are writing, refactoring, and optimizing linear mixed model (
LMM) code in the D programming language for near- realtime genome
scans on GPUs and clusters. The new package is called Faster-LMM-D
(github.com/prasunanand/faster_lmm_td).
Code handles complex admixture, large numbers of cofactors,
and should be able to map using large GWAS-type populations.
Our goal is that Faster-LMM-D be sufficiently fast for on-the-fly mapping
module faster_lmm_d.cuda_mult;
import cuda_d.vector_types;
import cuda_d.cublas_api;
import cuda_d.cublas_v2;
import cuda_d.cuda;
import cuda_d.cuda_runtime_api;
import faster_lmm_d.dmatrix;
import faster_lmm_d.optmatrix;
import faster_lmm_d.memory;
ldmd2 -lib -of../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/.dub/build/library-debug-linux.posix-x86_64-ldc_2071-86B508216A4635809366D4F6A849D4A8/libmir-cpuid.a -debug -g -w -version=Have_mir_cpuid -I../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/ ../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/cpuid/amd.d ../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/cpuid/common.d ../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/cpuid/intel.d ../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/cpuid/unified.d ../../../.dub/packages/mir-cpuid-0.4.2/mir-cpuid/source/cpuid/x86_any.d -vcolumns
ldmd2 -lib -of../../../.dub/packages/mir-internal-0.0.2/mir-internal/.dub/build/library-debug-linux.posix-x86_64-ldc_2071-B3B4694625705B637CB91780B7EF9921/libmir-internal.a -debug -g -w -version=Have_mir_internal -I../../../.dub/packages/mir-internal-0.0.2/mir-internal/source/ ../../../.dub/packages/mir-internal-0.0.2/mir-internal/source/mir/internal/utility.d -vcolumns
ldmd2 -lib -of../../../.dub/