SlideShare a Scribd company logo
1 of 43
Download to read offline
FastROCS: What does it mean to be “fast”?
OpenEye Scientific Software
Brian Cole

March 26, 2013

© 2013 OpenEye Scientific Software
FastROCS and the “Chasm”
OpenEye Scientific Software
Brian Cole

March 26, 2013

© 2013 OpenEye Scientific Software
ROCS: Rapid Overlay of Chemical Structures

March 26, 2013

© 2013 OpenEye Scientific Software
LeadHopper

March 26, 2013

© 2013 OpenEye Scientific Software
And then you wait…

March 26, 2013

© 2013 OpenEye Scientific Software
High	
  
is	
  
Best	
  

Shape	
  Overlays	
  per	
  Second	
  

What is FastROCS?

CPU	
  
© 2013 OpenEye Scientific Software

GPU	
  
What is FastROCS?

High	
  
is	
  
Best	
  

Shape	
  Overlays	
  per	
  Second	
  

1,000,000	
  
100,000	
  
10,000	
  
1,000	
  
100	
  
10	
  
1	
  

CPU	
  
© 2013 OpenEye Scientific Software

GPU	
  
What is FastROCS?

High	
  
is	
  
Best	
  

Shape	
  Overlays	
  per	
  Second	
  

600,000	
  
500,000	
  
400,000	
  
300,000	
  
200,000	
  
100,000	
  
0	
  

CPU	
  
©	
  2013	
  OpenEye	
  Scien;fic	
  So>ware	
  

GPU	
  
Low	
  
is	
  
Best	
  

Log	
  (Elapsed	
  5me	
  in	
  seconds)	
  

But I want it now!
100,000	
  
10,000	
  

ROCS	
  

1,000	
  
100	
  

FastROCS	
  

10	
  
1	
  
1	
  

10	
  

Log	
  (cores/GPUs)	
  
March 26, 2013

© 2013 OpenEye Scientific Software

100	
  
Riding Moore’s Law

High	
  
is	
  
Best	
  

Shape	
  Overlays	
  per	
  Second	
  

2,000,000	
  
1,800,000	
  
1,600,000	
  
1,400,000	
  
1,200,000	
  
1,000,000	
  
800,000	
  
600,000	
  
400,000	
  
200,000	
  
0	
  
C1060	
   C2050	
   C2075	
   C2090	
  
March 26, 2013

© 2013 OpenEye Scientific Software

K10	
  

K20	
  
ROCS user base
• 
• 
• 
• 
• 

Every Pharma R&D
Many BioTechs
Many Universities
National Labs and Research Centers
Other software companies

March 26, 2013

© 2013 OpenEye Scientific Software
Licenses by Year

High	
  
is	
  
Best	
  

2009	
  
March 26, 2013

ROCS	
  
FastROCS	
  

2010	
  

2011	
  
© 2013 OpenEye Scientific Software

2012	
  
Licenses by Year (Linear Scale)
Pharmageddon	
  	
  

ROCS	
  
FastROCS	
  

%15	
  
2009	
  
March 26, 2013

2010	
  

2011	
  
© 2013 OpenEye Scientific Software

2012	
  
All ROCS users (linear scale)

Academics	
  
ROCS	
  
FastROCS	
  

%3	
  
2009	
  
March 26, 2013

2010	
  

2011	
  

2012	
  

© 2013 OpenEye Scientific Software
Technology Adoption Lifecycle

%2.5	
   %13.5	
   %34	
  

%34	
  

FastROCS	
  
March 26, 2013

© 2013 OpenEye Scientific Software

%16	
  
What’s in the “chasm”?
•  “ROCS is already fast enough”

Some	
  other	
  ;me…	
  

•  “The results aren’t bitwise comparable”

•  “There’s nothing else to run on the GPU”
•  “GPUs are different”

March 26, 2013

© 2013 OpenEye Scientific Software

GTC!	
  
FastROCS Quick Start
• 
• 
• 
• 
• 
• 

crtl-alt-F1 (to switch to a non X-server terminal)
login as root
/sbin/init 3 (to turn off the X-server)
./NVIDIA-Linux-x86_64-285.05.09.run
reboot
./cuda.sh to give /dev/nvidia* correct permissions

•  tar –xzf fastrocs-1.3.1-RHEL5-x64-OpenCL-1.1-CUDA-4.1.tar.gz
•  openeye/bin/ShapeDatabaseServer.py database.oeb.gz
•  openeye/bin/ShapeDatabaseClient.py localhost:8080 query.sdf out.sdf

March 26, 2013

© 2013 OpenEye Scientific Software
ROCS Quick Start
S;ll	
  a	
  barrier	
  to	
  entry	
  to	
  work	
  around!	
  

•  tar –xzf ROCS-3.1.1-RHEL5-x64.tar.gz
•  openeye/bin/rocs query.sdf database.oeb.gz

March 26, 2013

© 2013 OpenEye Scientific Software
This is even worse!

fastrocs-1.3.1-RHEL5-x64-OpenCL-1.1-CUDA-4.1.tar.gz
NVidia	
  OpenCL	
  binaries	
  are	
  ;ghtly	
  	
  
locked	
  to	
  a	
  par;cular	
  driver	
  version	
  

March 26, 2013

© 2013 OpenEye Scientific Software
Worthwhile to upgrade
800,000	
  

High	
  
is	
  
Best	
  

Conformers	
  /	
  Second	
  

700,000	
  

%11	
  

600,000	
  
500,000	
  
400,000	
  
300,000	
  
200,000	
  
100,000	
  
0	
  
C2050	
  (260	
  Driver)	
  

March 26, 2013

© 2013 OpenEye Scientific Software

C2050	
  (295	
  Driver)	
  
Needed for new hardware
1,200,000	
  

High	
  
is	
  
Best	
  

Conformers	
  /	
  Second	
  

1,000,000	
  
800,000	
  
600,000	
  
400,000	
  
200,000	
  
0	
  
C2050	
  (295	
  Driver)	
  
March 26, 2013

© 2013 OpenEye Scientific Software

M2090	
  (295	
  Driver)	
  
High	
  
is	
  
Best	
  

Speedup	
  (Single	
  GPU	
  5me	
  /	
  Mul5-­‐GPU	
  5me)	
  

Scalability between drivers (4x C2050)
4	
  

3	
  
Ideal	
  
260	
  driver	
  

2	
  

295	
  driver	
  

1	
  
1	
  

March 26, 2013

2	
  
3	
  
Number	
  of	
  GPUs	
  	
  
© 2013 OpenEye Scientific Software

4	
  
High	
  
is	
  
Best	
  

Speedup	
  (Single	
  GPU	
  5me	
  /	
  Mul5-­‐GPU	
  5me)	
  

Really bad for 8x M2090
8	
  
7	
  
6	
  
5	
  
4	
  
3	
  
2	
  
1	
  
0	
  
1	
  

2	
  

3	
  

4	
  

5	
  

Number	
  of	
  GPUs	
  	
  

March 26, 2013

© 2013 OpenEye Scientific Software

6	
  

7	
  

8	
  
Ways to transfer to device
• 

CL_MEM_USE_HOST_PTR
– 

• 

CL_MEM_ALLOC_HOST_PTR|CL_MEM_COPY_HOST_PTR
– 

• 

kernelBuf = clCreateBuffer() - cacheable
ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE)
memcpy(ptr, data)
clEnqueueUnmapMemObject(ptr)

clEnqueueWriteBuffer
– 
– 

• 

kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR) - cacheable
ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE)
memcpy(ptr, data)
clEnqueueUnmapMemObject(ptr)

clEnqueueMapBuffer
– 
– 
– 
– 

• 

kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_COPY_HOST_PTR)

CL_MEM_ALLOC_HOST_PTR
– 
– 
– 
– 

• 

kernelBuf = clCreateBuffer(CL_MEM_USE_HOST_PTR)

kernelBuf = clCreateBuffer() - cacheable
clEnqueueWriteBuffer(kernelBuf, data)

oclCopyCompute
– 
– 
– 
– 
– 

pinnedBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_READ_WRITE) – cacheable
pinnedPtr = clEnqueueMapBuffer(pinnedBuf, CL_MAP_WRITE) – cacheable
memcpy(pinnedPtr, data)
kernelBuf = clCreateBuffer() – cacheable
clEnqueueWriteBuffer(kernelBuf, pinnedPtr)

March 26, 2013

© 2013 OpenEye Scientific Software
Ways to transfer from device
• 

CL_MEM_ALLOC_HOST_PTR
– 
– 
– 
– 

kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR) - cacheable
ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE)
memcpy(data, ptr)
clEnqueueUnmapMemObject(ptr)

•  clEnqueueMapBuffer
– 
– 
– 
– 

kernelBuf = clCreateBuffer() - cacheable
ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE)
memcpy(data, ptr)
clEnqueueUnmapMemObject(ptr)

•  clEnqueueReadBuffer

–  kernelBuf = clCreateBuffer() - cacheable
–  clEnqueueWriteBuffer(kernelBuf, data)

• 

oclCopyCompute
–  pinnedBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_READ_WRITE) –
cacheable
–  pinnedPtr = clEnqueueMapBuffer(pinnedBuf, CL_MAP_WRITE) – cacheable
–  memcpy(pinnedPtr, data)
–  kernelBuf = clCreateBuffer() – cacheable
–  clEnqueueReadBuffer(kernelBuf, pinnedPtr)

March 26, 2013

© 2013 OpenEye Scientific Software
Speedup	
  (Time	
  Sequen5al	
  /	
  Time	
  Parallel)	
  

FastROCS	
  scalability	
  across	
  8x	
  M2070	
  
9	
  
8	
  
7	
  
6	
  
5	
  
4	
  
3	
  
2	
  
1	
  
0	
  
1	
  1	
  1	
  1	
  1	
  2	
  2	
  2	
  2	
  2	
  3	
  3	
  3	
  3	
  3	
  4	
  4	
  4	
  4	
  4	
  5	
  5	
  5	
  5	
  5	
  6	
  6	
  6	
  6	
  6	
  7	
  7	
  7	
  7	
  7	
  8	
  8	
  8	
  8	
  8	
  

Number	
  of	
  GPUs	
  U5lized	
  
March 26, 2013

© 2013 OpenEye Scientific Software
Lessons from the mess
•  clEnqueueWriteBuffer > clEnqueueMapBuffer

•  clEnqueueMapBuffer >> clEnqueueReadBuffer

•  CL_MEM_* constants aren’t worth the effort

March 26, 2013

© 2013 OpenEye Scientific Software
CUDA?
•  Serious customers will only use NVidia cards
•  Pinned memory
•  Better support for binaries and compatibility
•  CUDA support >> OpenCL support

March 26, 2013

© 2013 OpenEye Scientific Software
FastROCS CUDA port

High	
  
is	
  
Best	
  

Confomers	
  per	
  Second	
  

3,000,000	
  
2,500,000	
  
2,000,000	
  

2xC2075	
  

1,500,000	
  

2xC2090	
  

1,000,000	
  

2xK20	
  

500,000	
  
0	
  

OpenCL	
  
March 26, 2013

CUDA	
  

© 2013 OpenEye Scientific Software

CUDA-­‐
pinned	
  
CUDA Scaling?

High	
  
is	
  
Best	
  

Conformers	
  per	
  Second	
  

8,000,000	
  
7,000,000	
  
6,000,000	
  
5,000,000	
  
4,000,000	
  

CUDA	
  

3,000,000	
  

OpenCL	
  

2,000,000	
  

Ideal	
  

1,000,000	
  
0	
  
1	
  

2	
  

3	
  

4	
  

5	
  

6	
  

7	
  

8	
  

Number	
  of	
  individual	
  K10	
  GPUs	
  	
  
(Note,	
  each	
  K10	
  has	
  2	
  physical	
  GPUs	
  on	
  the	
  board)	
  
March 26, 2013

© 2013 OpenEye Scientific Software
CUDA vs OpenCL: Ding Ding!
•  Portability vs Innovation
•  NVidia vs Intel and AMD
•  Open vs Proprietary

•  Customers don’t care…

March 26, 2013

© 2013 OpenEye Scientific Software
ROCS Implementations
•  We only care a little…
• 
• 
• 
• 
• 
• 

Fortran code (1995)
C code (1999)
C++ wrapper code (2003)
OpenCL code (2009)
CUDA code (2012)
C++ thread-safe code (2013)

March 26, 2013

© 2013 OpenEye Scientific Software
OpenEye Software
•  Lots of Software

–  14 products
–  13 software libraries

•  C++ (no SIMD)
–  2.5 million lines

•  Python
–  416 thousand lines

•  Java
–  63 thousand lines

•  C#
–  38 thousand lines
©	
  2012	
  OpenEye	
  Scien;fic	
  So>ware	
  
The People

10	
  

20	
  

Programmers	
  
Hardcore	
  Scripter	
  
Other	
  stuff	
  

12	
  
•  GPGPU = ½ of a developer
–  Only %2.5 of development effort
© 2012 OpenEye Scientific Software
Technology Adoption Lifecycle

%2.5	
   %13.5	
   %34	
  

%34	
  

%16	
  

OpenEye	
  GPGPU	
  development	
  
March 26, 2013

© 2013 OpenEye Scientific Software
LinkedIn skills

%2.2	
  

March 26, 2013

© 2013 OpenEye Scientific Software
Technology Adoption Lifecycle

%2.5	
   %13.5	
   %34	
  

%34	
  

GPGPU	
  development	
  
March 26, 2013

© 2013 OpenEye Scientific Software

%16	
  
I Believe…
•  GPGPU computing can become ubiquitous…

•  By expressing parallelism everywhere…

•  We can make it easy for our customers…
–  Pre-installed in every operating system
–  Integrated seamlessly into every language
–  Then eventually becoming the CPU
March 26, 2013

© 2013 OpenEye Scientific Software
Acknowledgements
•  Nikolai Sakharnykh (NVidia)
•  Dave Mullaly (HP)
•  Exxact Computing

March 26, 2013

© 2013 OpenEye Scientific Software
Father of “ROCS”
Andrew Grant
April 28th 1963
December 29th 2012

March 26, 2013

© 2013 OpenEye Scientific Software
March 26, 2013

© 2013 OpenEye Scientific Software
DUD	
  Average	
  AUC	
  

Dude, where’s my color?
0.9	
  
0.8	
  
0.7	
  
0.6	
  
0.5	
  
0.4	
  
0.3	
  
0.2	
  
0.1	
  
0	
  

Shape	
  Only	
  
With	
  Color	
  

ROCS	
  
March 26, 2013

FastROCS	
  
© 2010 OpenEye Scientific Software
0	
  

March 26, 2013
© 2010 OpenEye Scientific Software

Kendall	
  Tau	
  Correla5on	
  Coefficient	
  
1.00	
  

0.95	
  

0.90	
  

0.85	
  

0.80	
  

0.75	
  

0.70	
  

0.65	
  

0.60	
  

0.55	
  

0.50	
  

0.45	
  

0.40	
  

0.35	
  

0.30	
  

0.25	
  

0.20	
  

0.15	
  

0.10	
  

Number	
  of	
  Targets	
  

ROCS vs FastROCS Histogram
12	
  

10	
  

8	
  

6	
  

4	
  

2	
  

More Related Content

What's hot

What's hot (20)

Japan Lustre User Group 2014
Japan Lustre User Group 2014Japan Lustre User Group 2014
Japan Lustre User Group 2014
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
 
20170602_OSSummit_an_intelligent_storage
20170602_OSSummit_an_intelligent_storage20170602_OSSummit_an_intelligent_storage
20170602_OSSummit_an_intelligent_storage
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
numPYNQ: accelerating NumPy on PYNQ
numPYNQ: accelerating NumPy on PYNQnumPYNQ: accelerating NumPy on PYNQ
numPYNQ: accelerating NumPy on PYNQ
 
Secure lustre on openstack
Secure lustre on openstackSecure lustre on openstack
Secure lustre on openstack
 
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
.NET Fest 2019. Łukasz Pyrzyk. Daily Performance Fuckups
 
Hot Cloud'16: An Experiment on Bare-Metal BigData Provisioning
Hot Cloud'16: An Experiment on Bare-Metal BigData ProvisioningHot Cloud'16: An Experiment on Bare-Metal BigData Provisioning
Hot Cloud'16: An Experiment on Bare-Metal BigData Provisioning
 
Building Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC ContainerBuilding Software Ecosystems for AI Cloud using Singularity HPC Container
Building Software Ecosystems for AI Cloud using Singularity HPC Container
 
計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?計算力学シミュレーションに GPU は役立つのか?
計算力学シミュレーションに GPU は役立つのか?
 
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
GPU/SSD Accelerates PostgreSQL - challenge towards query processing throughpu...
 
GPU for DL
GPU for DLGPU for DL
GPU for DL
 
20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdw20171206 PGconf.ASIA LT gstore_fdw
20171206 PGconf.ASIA LT gstore_fdw
 
Mandriva 2011 x86_64 rpm.lst
Mandriva 2011 x86_64 rpm.lstMandriva 2011 x86_64 rpm.lst
Mandriva 2011 x86_64 rpm.lst
 
Debugging CUDA applications
Debugging CUDA applicationsDebugging CUDA applications
Debugging CUDA applications
 
OCDET Activity and Glusterfs
OCDET Activity and GlusterfsOCDET Activity and Glusterfs
OCDET Activity and Glusterfs
 
RAPIDS Overview
RAPIDS OverviewRAPIDS Overview
RAPIDS Overview
 
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big DataABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
ABCI: AI Bridging Cloud Infrastructure for Scalable AI/Big Data
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
PG-Strom
PG-StromPG-Strom
PG-Strom
 

Viewers also liked

PAUTES ENDEVINALLA
PAUTES ENDEVINALLAPAUTES ENDEVINALLA
PAUTES ENDEVINALLA
ldeniau
 
Making WordPress Themes and Plugins Translation Ready
Making WordPress Themes and Plugins Translation ReadyMaking WordPress Themes and Plugins Translation Ready
Making WordPress Themes and Plugins Translation Ready
WordPressBirmingham
 
Mature, Episode 9: "Hipsters"
Mature, Episode 9: "Hipsters"Mature, Episode 9: "Hipsters"
Mature, Episode 9: "Hipsters"
stealmyscripts
 
Anna Evaluation Question 1 Final
Anna Evaluation Question 1 FinalAnna Evaluation Question 1 Final
Anna Evaluation Question 1 Final
salesian2014as
 
How does your media product represent particular social
How does your media product represent particular socialHow does your media product represent particular social
How does your media product represent particular social
salesian2014as
 
In what ways does your media product use
In what ways does your media product useIn what ways does your media product use
In what ways does your media product use
salesian2014as
 
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, ValoriLA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
Roberta Coruzzi
 
Online reputation management for car dealerships car dealer reputation mark...
Online reputation management for car dealerships   car dealer reputation mark...Online reputation management for car dealerships   car dealer reputation mark...
Online reputation management for car dealerships car dealer reputation mark...
Andrew Wroblewski
 

Viewers also liked (17)

PAUTES ENDEVINALLA
PAUTES ENDEVINALLAPAUTES ENDEVINALLA
PAUTES ENDEVINALLA
 
Islam
IslamIslam
Islam
 
Making WordPress Themes and Plugins Translation Ready
Making WordPress Themes and Plugins Translation ReadyMaking WordPress Themes and Plugins Translation Ready
Making WordPress Themes and Plugins Translation Ready
 
Mature, Episode 9: "Hipsters"
Mature, Episode 9: "Hipsters"Mature, Episode 9: "Hipsters"
Mature, Episode 9: "Hipsters"
 
Anna Evaluation Question 1 Final
Anna Evaluation Question 1 FinalAnna Evaluation Question 1 Final
Anna Evaluation Question 1 Final
 
How does your media product represent particular social
How does your media product represent particular socialHow does your media product represent particular social
How does your media product represent particular social
 
Evaluation 4
Evaluation 4Evaluation 4
Evaluation 4
 
In what ways does your media product use
In what ways does your media product useIn what ways does your media product use
In what ways does your media product use
 
Question 2
Question 2Question 2
Question 2
 
Benidorm
BenidormBenidorm
Benidorm
 
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, ValoriLA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
LA CARTA DEI FONDAMENTI DI LGH - Missione, Visione, Valori
 
Online reputation management for car dealerships car dealer reputation mark...
Online reputation management for car dealerships   car dealer reputation mark...Online reputation management for car dealerships   car dealer reputation mark...
Online reputation management for car dealerships car dealer reputation mark...
 
Annexures
AnnexuresAnnexures
Annexures
 
Nba
NbaNba
Nba
 
A c partea 1
A c partea 1A c partea 1
A c partea 1
 
Dictionaries
DictionariesDictionaries
Dictionaries
 
nik-nak tweetalige kinderboekjes
nik-nak tweetalige kinderboekjesnik-nak tweetalige kinderboekjes
nik-nak tweetalige kinderboekjes
 

Similar to Molecular Shape Searching on GPUs: A Brave New World

44 con slides
44 con slides44 con slides
44 con slides
geeksec80
 
44 con slides (1)
44 con slides (1)44 con slides (1)
44 con slides (1)
geeksec80
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
Mahmoud Hatem
 

Similar to Molecular Shape Searching on GPUs: A Brave New World (20)

Data Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center ZurichData Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
Data Science Connect, July 22nd 2014 @IBM Innovation Center Zurich
 
44 con slides
44 con slides44 con slides
44 con slides
 
44 con slides (1)
44 con slides (1)44 con slides (1)
44 con slides (1)
 
The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]The power of linux advanced tracer [POUG18]
The power of linux advanced tracer [POUG18]
 
hacking-embedded-devices.pptx
hacking-embedded-devices.pptxhacking-embedded-devices.pptx
hacking-embedded-devices.pptx
 
44CON 2013 - Browser bug hunting - Memoirs of a last man standing - Atte Kett...
44CON 2013 - Browser bug hunting - Memoirs of a last man standing - Atte Kett...44CON 2013 - Browser bug hunting - Memoirs of a last man standing - Atte Kett...
44CON 2013 - Browser bug hunting - Memoirs of a last man standing - Atte Kett...
 
IO_Analysis_with_SAR.ppt
IO_Analysis_with_SAR.pptIO_Analysis_with_SAR.ppt
IO_Analysis_with_SAR.ppt
 
My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3My sql 5.6&MySQL Cluster 7.3
My sql 5.6&MySQL Cluster 7.3
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
Drupalcon2007 Sun
Drupalcon2007 SunDrupalcon2007 Sun
Drupalcon2007 Sun
 
NYC HUG - Application Architectures with Apache Hadoop
NYC HUG - Application Architectures with Apache HadoopNYC HUG - Application Architectures with Apache Hadoop
NYC HUG - Application Architectures with Apache Hadoop
 
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
Bringing up Android on your favorite X86 Workstation or VM (AnDevCon Boston, ...
 
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak   CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
CONFidence 2015: DTrace + OSX = Fun - Andrzej Dyjak
 
A MySQL Odyssey - A Blackhole Crossover
A MySQL Odyssey - A Blackhole CrossoverA MySQL Odyssey - A Blackhole Crossover
A MySQL Odyssey - A Blackhole Crossover
 
Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)Computing Performance: On the Horizon (2021)
Computing Performance: On the Horizon (2021)
 
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
Building android for the Cloud: Android as a Server (AnDevConBoston 2014)
 
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems Done "The Simple Way" - Demi Ben-Ari - Codemotion...
 
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
Monitoring Big Data Systems "Done the simple way" - Demi Ben-Ari - Codemotion...
 
Analyze database system using a 3 d method
Analyze database system using a 3 d methodAnalyze database system using a 3 d method
Analyze database system using a 3 d method
 
Server-Side Development for the Cloud
Server-Side Developmentfor the CloudServer-Side Developmentfor the Cloud
Server-Side Development for the Cloud
 

More from Can Ozdoruk

Boomerang-ConsumerElectronics-RAR
Boomerang-ConsumerElectronics-RARBoomerang-ConsumerElectronics-RAR
Boomerang-ConsumerElectronics-RAR
Can Ozdoruk
 
White-Paper-Consumer-Electronics
White-Paper-Consumer-ElectronicsWhite-Paper-Consumer-Electronics
White-Paper-Consumer-Electronics
Can Ozdoruk
 
Boomerang-Toys-RAR
Boomerang-Toys-RARBoomerang-Toys-RAR
Boomerang-Toys-RAR
Can Ozdoruk
 
SacramentoKings_Case-Study
SacramentoKings_Case-StudySacramentoKings_Case-Study
SacramentoKings_Case-Study
Can Ozdoruk
 

More from Can Ozdoruk (16)

ROAD FROM $0 TO $10M: 10 GROWTH TIPS
ROAD FROM $0 TO $10M: 10 GROWTH TIPSROAD FROM $0 TO $10M: 10 GROWTH TIPS
ROAD FROM $0 TO $10M: 10 GROWTH TIPS
 
Cloudinary Webinar Responsive Images
Cloudinary Webinar Responsive ImagesCloudinary Webinar Responsive Images
Cloudinary Webinar Responsive Images
 
Image optimization q_auto - f_auto
Image optimization q_auto - f_autoImage optimization q_auto - f_auto
Image optimization q_auto - f_auto
 
Boomerang-ConsumerElectronics-RAR
Boomerang-ConsumerElectronics-RARBoomerang-ConsumerElectronics-RAR
Boomerang-ConsumerElectronics-RAR
 
White-Paper-Consumer-Electronics
White-Paper-Consumer-ElectronicsWhite-Paper-Consumer-Electronics
White-Paper-Consumer-Electronics
 
Boomerang-Toys-RAR
Boomerang-Toys-RARBoomerang-Toys-RAR
Boomerang-Toys-RAR
 
SacramentoKings_Case-Study
SacramentoKings_Case-StudySacramentoKings_Case-Study
SacramentoKings_Case-Study
 
Product Marketing 101
Product Marketing 101Product Marketing 101
Product Marketing 101
 
AMBER14 & GPUs
AMBER14 & GPUsAMBER14 & GPUs
AMBER14 & GPUs
 
Challenges and Advances in Large-scale DFT Calculations on GPUs using TeraChem
Challenges and Advances in Large-scale DFT Calculations on GPUs using TeraChemChallenges and Advances in Large-scale DFT Calculations on GPUs using TeraChem
Challenges and Advances in Large-scale DFT Calculations on GPUs using TeraChem
 
Supercharging MD Simulations with GPUs
Supercharging MD Simulations with GPUsSupercharging MD Simulations with GPUs
Supercharging MD Simulations with GPUs
 
NVIDIA Tesla K40 GPU
NVIDIA Tesla K40 GPUNVIDIA Tesla K40 GPU
NVIDIA Tesla K40 GPU
 
Introduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template LibraryIntroduction to SeqAn, an Open-source C++ Template Library
Introduction to SeqAn, an Open-source C++ Template Library
 
Uncovering the Elusive HIV Capsid with Kepler GPUs Running NAMD and VMD
Uncovering the Elusive HIV Capsid with Kepler GPUs Running NAMD and VMDUncovering the Elusive HIV Capsid with Kepler GPUs Running NAMD and VMD
Uncovering the Elusive HIV Capsid with Kepler GPUs Running NAMD and VMD
 
ACEMD: High-throughput Molecular Dynamics with NVIDIA Kepler GPUs
ACEMD: High-throughput Molecular Dynamics with NVIDIA Kepler GPUsACEMD: High-throughput Molecular Dynamics with NVIDIA Kepler GPUs
ACEMD: High-throughput Molecular Dynamics with NVIDIA Kepler GPUs
 
AMBER and Kepler GPUs
AMBER and Kepler GPUsAMBER and Kepler GPUs
AMBER and Kepler GPUs
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Molecular Shape Searching on GPUs: A Brave New World

  • 1. FastROCS: What does it mean to be “fast”? OpenEye Scientific Software Brian Cole March 26, 2013 © 2013 OpenEye Scientific Software
  • 2. FastROCS and the “Chasm” OpenEye Scientific Software Brian Cole March 26, 2013 © 2013 OpenEye Scientific Software
  • 3. ROCS: Rapid Overlay of Chemical Structures March 26, 2013 © 2013 OpenEye Scientific Software
  • 4. LeadHopper March 26, 2013 © 2013 OpenEye Scientific Software
  • 5. And then you wait… March 26, 2013 © 2013 OpenEye Scientific Software
  • 6. High   is   Best   Shape  Overlays  per  Second   What is FastROCS? CPU   © 2013 OpenEye Scientific Software GPU  
  • 7. What is FastROCS? High   is   Best   Shape  Overlays  per  Second   1,000,000   100,000   10,000   1,000   100   10   1   CPU   © 2013 OpenEye Scientific Software GPU  
  • 8. What is FastROCS? High   is   Best   Shape  Overlays  per  Second   600,000   500,000   400,000   300,000   200,000   100,000   0   CPU   ©  2013  OpenEye  Scien;fic  So>ware   GPU  
  • 9. Low   is   Best   Log  (Elapsed  5me  in  seconds)   But I want it now! 100,000   10,000   ROCS   1,000   100   FastROCS   10   1   1   10   Log  (cores/GPUs)   March 26, 2013 © 2013 OpenEye Scientific Software 100  
  • 10. Riding Moore’s Law High   is   Best   Shape  Overlays  per  Second   2,000,000   1,800,000   1,600,000   1,400,000   1,200,000   1,000,000   800,000   600,000   400,000   200,000   0   C1060   C2050   C2075   C2090   March 26, 2013 © 2013 OpenEye Scientific Software K10   K20  
  • 11. ROCS user base •  •  •  •  •  Every Pharma R&D Many BioTechs Many Universities National Labs and Research Centers Other software companies March 26, 2013 © 2013 OpenEye Scientific Software
  • 12. Licenses by Year High   is   Best   2009   March 26, 2013 ROCS   FastROCS   2010   2011   © 2013 OpenEye Scientific Software 2012  
  • 13. Licenses by Year (Linear Scale) Pharmageddon     ROCS   FastROCS   %15   2009   March 26, 2013 2010   2011   © 2013 OpenEye Scientific Software 2012  
  • 14. All ROCS users (linear scale) Academics   ROCS   FastROCS   %3   2009   March 26, 2013 2010   2011   2012   © 2013 OpenEye Scientific Software
  • 15. Technology Adoption Lifecycle %2.5   %13.5   %34   %34   FastROCS   March 26, 2013 © 2013 OpenEye Scientific Software %16  
  • 16. What’s in the “chasm”? •  “ROCS is already fast enough” Some  other  ;me…   •  “The results aren’t bitwise comparable” •  “There’s nothing else to run on the GPU” •  “GPUs are different” March 26, 2013 © 2013 OpenEye Scientific Software GTC!  
  • 17. FastROCS Quick Start •  •  •  •  •  •  crtl-alt-F1 (to switch to a non X-server terminal) login as root /sbin/init 3 (to turn off the X-server) ./NVIDIA-Linux-x86_64-285.05.09.run reboot ./cuda.sh to give /dev/nvidia* correct permissions •  tar –xzf fastrocs-1.3.1-RHEL5-x64-OpenCL-1.1-CUDA-4.1.tar.gz •  openeye/bin/ShapeDatabaseServer.py database.oeb.gz •  openeye/bin/ShapeDatabaseClient.py localhost:8080 query.sdf out.sdf March 26, 2013 © 2013 OpenEye Scientific Software
  • 18. ROCS Quick Start S;ll  a  barrier  to  entry  to  work  around!   •  tar –xzf ROCS-3.1.1-RHEL5-x64.tar.gz •  openeye/bin/rocs query.sdf database.oeb.gz March 26, 2013 © 2013 OpenEye Scientific Software
  • 19. This is even worse! fastrocs-1.3.1-RHEL5-x64-OpenCL-1.1-CUDA-4.1.tar.gz NVidia  OpenCL  binaries  are  ;ghtly     locked  to  a  par;cular  driver  version   March 26, 2013 © 2013 OpenEye Scientific Software
  • 20. Worthwhile to upgrade 800,000   High   is   Best   Conformers  /  Second   700,000   %11   600,000   500,000   400,000   300,000   200,000   100,000   0   C2050  (260  Driver)   March 26, 2013 © 2013 OpenEye Scientific Software C2050  (295  Driver)  
  • 21. Needed for new hardware 1,200,000   High   is   Best   Conformers  /  Second   1,000,000   800,000   600,000   400,000   200,000   0   C2050  (295  Driver)   March 26, 2013 © 2013 OpenEye Scientific Software M2090  (295  Driver)  
  • 22. High   is   Best   Speedup  (Single  GPU  5me  /  Mul5-­‐GPU  5me)   Scalability between drivers (4x C2050) 4   3   Ideal   260  driver   2   295  driver   1   1   March 26, 2013 2   3   Number  of  GPUs     © 2013 OpenEye Scientific Software 4  
  • 23. High   is   Best   Speedup  (Single  GPU  5me  /  Mul5-­‐GPU  5me)   Really bad for 8x M2090 8   7   6   5   4   3   2   1   0   1   2   3   4   5   Number  of  GPUs     March 26, 2013 © 2013 OpenEye Scientific Software 6   7   8  
  • 24. Ways to transfer to device •  CL_MEM_USE_HOST_PTR –  •  CL_MEM_ALLOC_HOST_PTR|CL_MEM_COPY_HOST_PTR –  •  kernelBuf = clCreateBuffer() - cacheable ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE) memcpy(ptr, data) clEnqueueUnmapMemObject(ptr) clEnqueueWriteBuffer –  –  •  kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR) - cacheable ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE) memcpy(ptr, data) clEnqueueUnmapMemObject(ptr) clEnqueueMapBuffer –  –  –  –  •  kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_COPY_HOST_PTR) CL_MEM_ALLOC_HOST_PTR –  –  –  –  •  kernelBuf = clCreateBuffer(CL_MEM_USE_HOST_PTR) kernelBuf = clCreateBuffer() - cacheable clEnqueueWriteBuffer(kernelBuf, data) oclCopyCompute –  –  –  –  –  pinnedBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_READ_WRITE) – cacheable pinnedPtr = clEnqueueMapBuffer(pinnedBuf, CL_MAP_WRITE) – cacheable memcpy(pinnedPtr, data) kernelBuf = clCreateBuffer() – cacheable clEnqueueWriteBuffer(kernelBuf, pinnedPtr) March 26, 2013 © 2013 OpenEye Scientific Software
  • 25. Ways to transfer from device •  CL_MEM_ALLOC_HOST_PTR –  –  –  –  kernelBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR) - cacheable ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE) memcpy(data, ptr) clEnqueueUnmapMemObject(ptr) •  clEnqueueMapBuffer –  –  –  –  kernelBuf = clCreateBuffer() - cacheable ptr = clEnqueueMapBuffer(kernelBuf, CL_MAP_WRITE) memcpy(data, ptr) clEnqueueUnmapMemObject(ptr) •  clEnqueueReadBuffer –  kernelBuf = clCreateBuffer() - cacheable –  clEnqueueWriteBuffer(kernelBuf, data) •  oclCopyCompute –  pinnedBuf = clCreateBuffer(CL_MEM_ALLOC_HOST_PTR|CL_MEM_READ_WRITE) – cacheable –  pinnedPtr = clEnqueueMapBuffer(pinnedBuf, CL_MAP_WRITE) – cacheable –  memcpy(pinnedPtr, data) –  kernelBuf = clCreateBuffer() – cacheable –  clEnqueueReadBuffer(kernelBuf, pinnedPtr) March 26, 2013 © 2013 OpenEye Scientific Software
  • 26. Speedup  (Time  Sequen5al  /  Time  Parallel)   FastROCS  scalability  across  8x  M2070   9   8   7   6   5   4   3   2   1   0   1  1  1  1  1  2  2  2  2  2  3  3  3  3  3  4  4  4  4  4  5  5  5  5  5  6  6  6  6  6  7  7  7  7  7  8  8  8  8  8   Number  of  GPUs  U5lized   March 26, 2013 © 2013 OpenEye Scientific Software
  • 27. Lessons from the mess •  clEnqueueWriteBuffer > clEnqueueMapBuffer •  clEnqueueMapBuffer >> clEnqueueReadBuffer •  CL_MEM_* constants aren’t worth the effort March 26, 2013 © 2013 OpenEye Scientific Software
  • 28. CUDA? •  Serious customers will only use NVidia cards •  Pinned memory •  Better support for binaries and compatibility •  CUDA support >> OpenCL support March 26, 2013 © 2013 OpenEye Scientific Software
  • 29. FastROCS CUDA port High   is   Best   Confomers  per  Second   3,000,000   2,500,000   2,000,000   2xC2075   1,500,000   2xC2090   1,000,000   2xK20   500,000   0   OpenCL   March 26, 2013 CUDA   © 2013 OpenEye Scientific Software CUDA-­‐ pinned  
  • 30. CUDA Scaling? High   is   Best   Conformers  per  Second   8,000,000   7,000,000   6,000,000   5,000,000   4,000,000   CUDA   3,000,000   OpenCL   2,000,000   Ideal   1,000,000   0   1   2   3   4   5   6   7   8   Number  of  individual  K10  GPUs     (Note,  each  K10  has  2  physical  GPUs  on  the  board)   March 26, 2013 © 2013 OpenEye Scientific Software
  • 31. CUDA vs OpenCL: Ding Ding! •  Portability vs Innovation •  NVidia vs Intel and AMD •  Open vs Proprietary •  Customers don’t care… March 26, 2013 © 2013 OpenEye Scientific Software
  • 32. ROCS Implementations •  We only care a little… •  •  •  •  •  •  Fortran code (1995) C code (1999) C++ wrapper code (2003) OpenCL code (2009) CUDA code (2012) C++ thread-safe code (2013) March 26, 2013 © 2013 OpenEye Scientific Software
  • 33. OpenEye Software •  Lots of Software –  14 products –  13 software libraries •  C++ (no SIMD) –  2.5 million lines •  Python –  416 thousand lines •  Java –  63 thousand lines •  C# –  38 thousand lines ©  2012  OpenEye  Scien;fic  So>ware  
  • 34. The People 10   20   Programmers   Hardcore  Scripter   Other  stuff   12   •  GPGPU = ½ of a developer –  Only %2.5 of development effort © 2012 OpenEye Scientific Software
  • 35. Technology Adoption Lifecycle %2.5   %13.5   %34   %34   %16   OpenEye  GPGPU  development   March 26, 2013 © 2013 OpenEye Scientific Software
  • 36. LinkedIn skills %2.2   March 26, 2013 © 2013 OpenEye Scientific Software
  • 37. Technology Adoption Lifecycle %2.5   %13.5   %34   %34   GPGPU  development   March 26, 2013 © 2013 OpenEye Scientific Software %16  
  • 38. I Believe… •  GPGPU computing can become ubiquitous… •  By expressing parallelism everywhere… •  We can make it easy for our customers… –  Pre-installed in every operating system –  Integrated seamlessly into every language –  Then eventually becoming the CPU March 26, 2013 © 2013 OpenEye Scientific Software
  • 39. Acknowledgements •  Nikolai Sakharnykh (NVidia) •  Dave Mullaly (HP) •  Exxact Computing March 26, 2013 © 2013 OpenEye Scientific Software
  • 40. Father of “ROCS” Andrew Grant April 28th 1963 December 29th 2012 March 26, 2013 © 2013 OpenEye Scientific Software
  • 41. March 26, 2013 © 2013 OpenEye Scientific Software
  • 42. DUD  Average  AUC   Dude, where’s my color? 0.9   0.8   0.7   0.6   0.5   0.4   0.3   0.2   0.1   0   Shape  Only   With  Color   ROCS   March 26, 2013 FastROCS   © 2010 OpenEye Scientific Software
  • 43. 0   March 26, 2013 © 2010 OpenEye Scientific Software Kendall  Tau  Correla5on  Coefficient   1.00   0.95   0.90   0.85   0.80   0.75   0.70   0.65   0.60   0.55   0.50   0.45   0.40   0.35   0.30   0.25   0.20   0.15   0.10   Number  of  Targets   ROCS vs FastROCS Histogram 12   10   8   6   4   2