|
4 | 4 | "cell_type": "markdown",
|
5 | 5 | "metadata": {
|
6 | 6 | "slideshow": {
|
7 |
| - "slide_type": "subslide" |
| 7 | + "slide_type": "slide" |
8 | 8 | }
|
9 | 9 | },
|
10 | 10 | "source": [
|
|
19 | 19 | },
|
20 | 20 | {
|
21 | 21 | "cell_type": "markdown",
|
22 |
| - "metadata": {}, |
| 22 | + "metadata": { |
| 23 | + "slideshow": { |
| 24 | + "slide_type": "subslide" |
| 25 | + } |
| 26 | + }, |
23 | 27 | "source": [
|
24 | 28 | "## C++ all the things"
|
25 | 29 | ]
|
|
51 | 55 | "cell_type": "markdown",
|
52 | 56 | "metadata": {
|
53 | 57 | "slideshow": {
|
54 |
| - "slide_type": "subslide" |
| 58 | + "slide_type": "slide" |
55 | 59 | }
|
56 | 60 | },
|
57 | 61 | "source": [
|
58 |
| - "# N-D arrays are everywhere\n", |
| 62 | + "# Motivation\n", |
| 63 | + "\n", |
| 64 | + "## N-D arrays are everywhere\n", |
| 65 | + "\n", |
| 66 | + "<img src=\"src/pyjlr.png\" width=\"500px\" />\n", |
59 | 67 | "\n",
|
60 | 68 | "- ... except for C++\n",
|
61 | 69 | "- Basic building block of data science\n",
|
62 |
| - "- Images, Videos, Music, Point Clouds – all are expressed as N-dimensional data." |
| 70 | + "- Images, Videos, Music, Point Clouds – all are expressed as N-dimensional data" |
| 71 | + ] |
| 72 | + }, |
| 73 | + { |
| 74 | + "cell_type": "markdown", |
| 75 | + "metadata": { |
| 76 | + "slideshow": { |
| 77 | + "slide_type": "subslide" |
| 78 | + } |
| 79 | + }, |
| 80 | + "source": [ |
| 81 | + "## The interlanguage meeting\n", |
| 82 | + "\n", |
| 83 | + "<img src=\"../2017-04-09-PyDataAmsterdam-xtensor/src/workshop-berkeley.jpg\" width=\"50%\"/>\n", |
| 84 | + "\n", |
| 85 | + "On November 9, 2015, key developers from the R and Python ecosystems gathered in Berkeley for a workshop to explore data structures across programming languages and Packages. " |
| 86 | + ] |
| 87 | + }, |
| 88 | + { |
| 89 | + "cell_type": "markdown", |
| 90 | + "metadata": { |
| 91 | + "slideshow": { |
| 92 | + "slide_type": "subslide" |
| 93 | + } |
| 94 | + }, |
| 95 | + "source": [ |
| 96 | + "# Their conclusions\n", |
| 97 | + "\n", |
| 98 | + "- Enforce common formats and protocols to communicate and store these data structures.\n", |
| 99 | + "- Support for these protocols accross all three languages.\n", |
| 100 | + "- Converge on common native C++ implementations of these data structures with bindings for multiple scripting languages." |
63 | 101 | ]
|
64 | 102 | },
|
65 | 103 | {
|
|
69 | 107 | "slide_type": "subslide"
|
70 | 108 | }
|
71 | 109 | },
|
| 110 | + "source": [ |
| 111 | + "# One Tensor to Rule Them All\n", |
| 112 | + "\n", |
| 113 | + "<img src=\"../2017-04-09-PyDataAmsterdam-xtensor/src/ring.png\" />" |
| 114 | + ] |
| 115 | + }, |
| 116 | + { |
| 117 | + "cell_type": "markdown", |
| 118 | + "metadata": { |
| 119 | + "slideshow": { |
| 120 | + "slide_type": "slide" |
| 121 | + } |
| 122 | + }, |
72 | 123 | "source": [
|
73 | 124 | "<img src=\"src/xtensor.png\" width=\"500px\" />\n",
|
74 | 125 | "\n",
|
|
658 | 709 | "source": [
|
659 | 710 | "# Benchmarks\n",
|
660 | 711 | "\n",
|
661 |
| - "- Standalone C++: 0.016s\n", |
662 |
| - "- Python + NumPy: 14.22s\n", |
663 |
| - "- Python + xtensor: 0.022s\n", |
664 |
| - "- Julia: 0.014s\n", |
665 |
| - "- Julia + xtensor: 0.014s\n", |
666 |
| - "- R: 9.905s\n", |
667 |
| - "- R + xtensor: 0.013s" |
| 712 | + "\n", |
| 713 | + "<table style=\"font-size: 30px; font-family: monospace;\">\n", |
| 714 | + " <tr>\n", |
| 715 | + " <th width=\"400px\">Language</th>\n", |
| 716 | + " <th>Time</th>\n", |
| 717 | + " </tr>\n", |
| 718 | + " <tr>\n", |
| 719 | + " <td>Standalone C++</td>\n", |
| 720 | + " <td>0.016s</td>\n", |
| 721 | + " </tr>\n", |
| 722 | + " <tr>\n", |
| 723 | + " <td>Python + NumPy</td>\n", |
| 724 | + " <td>14.220s</td>\n", |
| 725 | + " </tr>\n", |
| 726 | + " <tr>\n", |
| 727 | + " <td>Python + xtensor</td>\n", |
| 728 | + " <td>0.022s</td>\n", |
| 729 | + " </tr>\n", |
| 730 | + " <tr>\n", |
| 731 | + " <td>Julia</td>\n", |
| 732 | + " <td>0.014s</td>\n", |
| 733 | + " </tr>\n", |
| 734 | + " <tr>\n", |
| 735 | + " <td>Julia + xtensor</td>\n", |
| 736 | + " <td>0.014s</td>\n", |
| 737 | + " </tr>\n", |
| 738 | + " <tr>\n", |
| 739 | + " <td>R</td>\n", |
| 740 | + " <td>9.905s</td>\n", |
| 741 | + " </tr>\n", |
| 742 | + " <tr>\n", |
| 743 | + " <td>R + xtensor</td>\n", |
| 744 | + " <td>0.014s</td>\n", |
| 745 | + " </tr>\n", |
| 746 | + "\n", |
| 747 | + "</table>" |
668 | 748 | ]
|
669 | 749 | },
|
670 | 750 | {
|
|
759 | 839 | }
|
760 | 840 | ],
|
761 | 841 | "metadata": {
|
762 |
| - "celltoolbar": "Diaporama", |
| 842 | + "celltoolbar": "Slideshow", |
763 | 843 | "kernelspec": {
|
764 | 844 | "display_name": "C++14",
|
765 | 845 | "language": "C++14",
|
|
0 commit comments