100% found this document useful (1 vote)
35 views

Modern Parallel Programming with C++ and Assembly Language Daniel Kusswurm download

The document provides information about the book 'Modern Parallel Programming with C++ and Assembly Language' by Daniel Kusswurm, which focuses on X86 SIMD development using AVX, AVX2, and AVX-512. It includes details on the book's content, chapters covering SIMD fundamentals, AVX programming, and various arithmetic operations. Additionally, it offers links to download the book and other related titles.

Uploaded by

lulushpesin
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
35 views

Modern Parallel Programming with C++ and Assembly Language Daniel Kusswurm download

The document provides information about the book 'Modern Parallel Programming with C++ and Assembly Language' by Daniel Kusswurm, which focuses on X86 SIMD development using AVX, AVX2, and AVX-512. It includes details on the book's content, chapters covering SIMD fundamentals, AVX programming, and various arithmetic operations. Additionally, it offers links to download the book and other related titles.

Uploaded by

lulushpesin
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 52

Modern Parallel Programming with C++ and

Assembly Language Daniel Kusswurm pdf download

https://ebookmeta.com/product/modern-parallel-programming-with-c-
and-assembly-language-daniel-kusswurm/

Download more ebook from https://ebookmeta.com


We believe these products will be a great fit for you. Click
the link to download now, or visit ebookmeta.com
to discover even more!

Modern X86 Assembly Language Programming: Covers X86


64-bit, AVX, AVX2, and AVX-512, 3rd Edition Daniel
Kusswurm

https://ebookmeta.com/product/modern-x86-assembly-language-
programming-covers-x86-64-bit-avx-avx2-and-avx-512-3rd-edition-
daniel-kusswurm/

Modern X86 Assembly Language Programming: Covers x86


64-bit, AVX, AVX2, and AVX-512 2nd Edition Daniel
Kusswurm

https://ebookmeta.com/product/modern-x86-assembly-language-
programming-covers-x86-64-bit-avx-avx2-and-avx-512-2nd-edition-
daniel-kusswurm/

x86 64 Assembly Language Programming with Ubuntu Ed


Jorgensen

https://ebookmeta.com/product/x86-64-assembly-language-
programming-with-ubuntu-ed-jorgensen/

In my Rearview Steamy in Sweetville Book 12 1st Edition


Haven Rose

https://ebookmeta.com/product/in-my-rearview-steamy-in-
sweetville-book-12-1st-edition-haven-rose-2/
Basic Georgian 3rd Edition Nana Danelia

https://ebookmeta.com/product/basic-georgian-3rd-edition-nana-
danelia/

Academic Skills Problems Fifth Edition Workbook Edward


S. Shapiro

https://ebookmeta.com/product/academic-skills-problems-fifth-
edition-workbook-edward-s-shapiro/

Petri Nets for Modeling of Large Discrete Systems Asset


Analytics Davidrajuh Reggie

https://ebookmeta.com/product/petri-nets-for-modeling-of-large-
discrete-systems-asset-analytics-davidrajuh-reggie/

Living with Heritage the Case of Tsodilo World Heritage


Site and Neighbouring Localities 1st Edition Stella
Basinyi

https://ebookmeta.com/product/living-with-heritage-the-case-of-
tsodilo-world-heritage-site-and-neighbouring-localities-1st-
edition-stella-basinyi/

The Lost Daughter Emily Slate 06 1st Edition Alex


Sigmore

https://ebookmeta.com/product/the-lost-daughter-emily-
slate-06-1st-edition-alex-sigmore/
Siam msi An Introduction to Service Integration and
Management Multi Sourcing Integration for IT Service
Management 1st Edition David Clifford

https://ebookmeta.com/product/siam-msi-an-introduction-to-
service-integration-and-management-multi-sourcing-integration-
for-it-service-management-1st-edition-david-clifford/
Modern Parallel
Programming with
C++ and Assembly
Language
X86 SIMD Development Using AVX,
AVX2, and AVX-512

Daniel Kusswurm
Modern Parallel
Programming with C++
and Assembly Language
X86 SIMD Development Using AVX, AVX2,
and AVX-512

Daniel Kusswurm
Modern Parallel Programming with C++ and Assembly Language: X86 SIMD
Development Using AVX, AVX2, and AVX-512
Daniel Kusswurm
Geneva, IL, USA

ISBN-13 (pbk): 978-1-4842-7917-5 ISBN-13 (electronic): 978-1-4842-7918-2


https://doi.org/10.1007/978-1-4842-7918-2

Copyright © 2022 by Daniel Kusswurm


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Managing Director, Apress Media LLC: Welmoed Spahr
Acquisitions Editor: Steve Anglin
Development Editor: James Markham
Coordinating Editor: Mark Powers
Cover designed by eStudioCalamar
Cover image by Viktor Forgacs on Unsplash (www.unsplash.com)
Distributed to the book trade worldwide by Apress Media, LLC, 1 New York Plaza, New York, NY 10004,
U.S.A. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit
www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer
Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail [email protected]; for reprint,
paperback, or audio rights, please e-mail [email protected].
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub (https://github.com/Apress). For more detailed information, please visit
http://www.apress.com/source-­code.
Printed on acid-free paper
Table of Contents

About the Author����������������������������������������������������������������������������������������������������� xi


About the Technical Reviewer������������������������������������������������������������������������������� xiii
Acknowledgments���������������������������������������������������������������������������������������������������xv
Introduction�����������������������������������������������������������������������������������������������������������xvii


■Chapter 1: SIMD Fundamentals����������������������������������������������������������������������������� 1
What Is SIMD?������������������������������������������������������������������������������������������������������������������ 1
Historical Overview of x86 SIMD�������������������������������������������������������������������������������������� 4
SIMD Data Types��������������������������������������������������������������������������������������������������������������� 5
SIMD Arithmetic��������������������������������������������������������������������������������������������������������������� 7
SIMD Integer Arithmetic������������������������������������������������������������������������������������������������������������������������� 7
SIMD Floating-Point Arithmetic������������������������������������������������������������������������������������������������������������ 10

SIMD Data Manipulation Operations������������������������������������������������������������������������������ 12


SIMD Programming�������������������������������������������������������������������������������������������������������� 15
Summary������������������������������������������������������������������������������������������������������������������������ 16

■Chapter 2: AVX C++ Programming: Part 1����������������������������������������������������������� 17
Integer Arithmetic����������������������������������������������������������������������������������������������������������� 17
Integer Addition������������������������������������������������������������������������������������������������������������������������������������ 17
Integer Subtraction������������������������������������������������������������������������������������������������������������������������������� 22
Integer Multiplication���������������������������������������������������������������������������������������������������������������������������� 24

Integer Bitwise Logical and Shift Operations����������������������������������������������������������������� 30


Bitwise Logical Operations������������������������������������������������������������������������������������������������������������������� 30
Shift Operations������������������������������������������������������������������������������������������������������������������������������������ 33

iii
■ Table of Contents

C++ SIMD Intrinsic Function Naming Conventions�������������������������������������������������������� 35


Image Processing Algorithms����������������������������������������������������������������������������������������� 37
Pixel Minimum and Maximum�������������������������������������������������������������������������������������������������������������� 37
Pixel Mean Intensity����������������������������������������������������������������������������������������������������������������������������� 45

Summary������������������������������������������������������������������������������������������������������������������������ 50

■Chapter 3: AVX C++ Programming: Part 2����������������������������������������������������������� 53
Floating-Point Operations����������������������������������������������������������������������������������������������� 53
Floating-Point Arithmetic���������������������������������������������������������������������������������������������������������������������� 53
Floating-Point Compares���������������������������������������������������������������������������������������������������������������������� 59
Floating-Point Conversions������������������������������������������������������������������������������������������������������������������� 64

Floating-Point Arrays������������������������������������������������������������������������������������������������������ 68
Mean and Standard Deviation�������������������������������������������������������������������������������������������������������������� 69
Distance Calculations��������������������������������������������������������������������������������������������������������������������������� 78

Floating-Point Matrices�������������������������������������������������������������������������������������������������� 88
Column Means�������������������������������������������������������������������������������������������������������������������������������������� 89

Summary������������������������������������������������������������������������������������������������������������������������ 95

■Chapter 4: AVX2 C++ Programming: Part 1��������������������������������������������������������� 97
Integer Arithmetic����������������������������������������������������������������������������������������������������������� 97
Addition and Subtraction���������������������������������������������������������������������������������������������������������������������� 97
Unpacking and Packing���������������������������������������������������������������������������������������������������������������������� 102
Size Promotions���������������������������������������������������������������������������������������������������������������������������������� 107

Image Processing��������������������������������������������������������������������������������������������������������� 113


Pixel Clipping�������������������������������������������������������������������������������������������������������������������������������������� 114
RGB to Grayscale�������������������������������������������������������������������������������������������������������������������������������� 119
Thresholding��������������������������������������������������������������������������������������������������������������������������������������� 128
Pixel Conversions������������������������������������������������������������������������������������������������������������������������������� 137

Summary���������������������������������������������������������������������������������������������������������������������� 142

iv
■ Table of Contents


■Chapter 5: AVX2 C++ Programming: Part 2������������������������������������������������������� 145
Floating-Point Arrays���������������������������������������������������������������������������������������������������� 145
Least Squares������������������������������������������������������������������������������������������������������������������������������������� 146

Floating-Point Matrices������������������������������������������������������������������������������������������������ 151


Matrix Multiplication��������������������������������������������������������������������������������������������������������������������������� 152
Matrix (4 × 4) Multiplication��������������������������������������������������������������������������������������������������������������� 161
Matrix (4 × 4) Vector Multiplication���������������������������������������������������������������������������������������������������� 169
Matrix Inverse������������������������������������������������������������������������������������������������������������������������������������� 181

Summary���������������������������������������������������������������������������������������������������������������������� 188

■Chapter 6: AVX2 C++ Programming: Part 3������������������������������������������������������� 189
Convolution Primer������������������������������������������������������������������������������������������������������� 189
Convolution Math: 1D������������������������������������������������������������������������������������������������������������������������� 189
Convolution Math: 2D������������������������������������������������������������������������������������������������������������������������� 192

1D Convolutions����������������������������������������������������������������������������������������������������������� 194


2D Convolutions����������������������������������������������������������������������������������������������������������� 206
Nonseparable Kernel�������������������������������������������������������������������������������������������������������������������������� 206
Separable Kernel�������������������������������������������������������������������������������������������������������������������������������� 215

Summary���������������������������������������������������������������������������������������������������������������������� 222

■Chapter 7: AVX-512 C++ Programming: Part 1������������������������������������������������� 223
AVX-512 Overview�������������������������������������������������������������������������������������������������������� 223
Integer Arithmetic��������������������������������������������������������������������������������������������������������� 224
Basic Arithmetic��������������������������������������������������������������������������������������������������������������������������������� 224
Merge Masking and Zero Masking����������������������������������������������������������������������������������������������������� 230

Image Processing��������������������������������������������������������������������������������������������������������� 237


RGB to Grayscale�������������������������������������������������������������������������������������������������������������������������������� 237
Image Thresholding���������������������������������������������������������������������������������������������������������������������������� 240
Image Statistics���������������������������������������������������������������������������������������������������������������������������������� 247

Summary���������������������������������������������������������������������������������������������������������������������� 255

v
■ Table of Contents


■Chapter 8: AVX-512 C++ Programming: Part 2������������������������������������������������� 259
Floating-Point Arithmetic��������������������������������������������������������������������������������������������� 259
Basic Arithmetic��������������������������������������������������������������������������������������������������������������������������������� 259
Compare Operations��������������������������������������������������������������������������������������������������������������������������� 265

Floating-Point Arrays���������������������������������������������������������������������������������������������������� 269


Floating-Point Matrices������������������������������������������������������������������������������������������������ 272
Covariance Matrix������������������������������������������������������������������������������������������������������������������������������� 272
Matrix Multiplication��������������������������������������������������������������������������������������������������������������������������� 279
Matrix (4 x 4) Vector Multiplication����������������������������������������������������������������������������������������������������� 283

Convolutions����������������������������������������������������������������������������������������������������������������� 289
1D Convolutions���������������������������������������������������������������������������������������������������������������������������������� 289
2D Convolutions���������������������������������������������������������������������������������������������������������������������������������� 294

Summary���������������������������������������������������������������������������������������������������������������������� 300

■Chapter 9: Supplemental C++ SIMD Programming������������������������������������������� 303
Using CPUID������������������������������������������������������������������������������������������������������������������ 303
Short Vector Math Library�������������������������������������������������������������������������������������������� 315
Rectangular to Polar Coordinates������������������������������������������������������������������������������������������������������� 316
Body Surface Area������������������������������������������������������������������������������������������������������������������������������ 325

Summary���������������������������������������������������������������������������������������������������������������������� 331

■Chapter 10: X86-64 Processor Architecture������������������������������������������������������ 333
Data Types�������������������������������������������������������������������������������������������������������������������� 333
Fundamental Data Types�������������������������������������������������������������������������������������������������������������������� 334
Numerical Data Types������������������������������������������������������������������������������������������������������������������������� 335
SIMD Data Types��������������������������������������������������������������������������������������������������������������������������������� 335
Strings������������������������������������������������������������������������������������������������������������������������������������������������ 335

Internal Architecture����������������������������������������������������������������������������������������������������� 336


General-Purpose Registers����������������������������������������������������������������������������������������������������������������� 337
Instruction Pointer������������������������������������������������������������������������������������������������������������������������������ 338
RFLAGS Register��������������������������������������������������������������������������������������������������������������������������������� 338
Floating-Point and SIMD Registers����������������������������������������������������������������������������������������������������� 340

vi
■ Table of Contents

MXCSR Register���������������������������������������������������������������������������������������������������������������������������������� 342

Instruction Operands���������������������������������������������������������������������������������������������������� 343


Memory Addressing����������������������������������������������������������������������������������������������������� 344
Condition Codes����������������������������������������������������������������������������������������������������������� 346
Summary���������������������������������������������������������������������������������������������������������������������� 347

■Chapter 11: Core Assembly Language Programming: Part 1���������������������������� 349
Integer Arithmetic��������������������������������������������������������������������������������������������������������� 349
Addition and Subtraction�������������������������������������������������������������������������������������������������������������������� 350
Multiplication�������������������������������������������������������������������������������������������������������������������������������������� 353
Division����������������������������������������������������������������������������������������������������������������������������������������������� 357

Calling Convention: Part 1�������������������������������������������������������������������������������������������� 362


Memory Addressing Modes������������������������������������������������������������������������������������������ 368
For-Loops��������������������������������������������������������������������������������������������������������������������� 373
Condition Codes����������������������������������������������������������������������������������������������������������� 376
Strings�������������������������������������������������������������������������������������������������������������������������� 381
Summary���������������������������������������������������������������������������������������������������������������������� 386

■Chapter 12: Core Assembly Language Programming: Part 2���������������������������� 389
Scalar Floating-Point Arithmetic���������������������������������������������������������������������������������� 389
Single-Precision Arithmetic���������������������������������������������������������������������������������������������������������������� 389
Double-Precision Arithmetic��������������������������������������������������������������������������������������������������������������� 393
Compares������������������������������������������������������������������������������������������������������������������������������������������� 397
Conversions���������������������������������������������������������������������������������������������������������������������������������������� 400

Scalar Floating-Point Arrays����������������������������������������������������������������������������������������� 409


Calling Convention: Part 2�������������������������������������������������������������������������������������������� 411
Stack Frames�������������������������������������������������������������������������������������������������������������������������������������� 412
Using Nonvolatile General-Purpose Registers������������������������������������������������������������������������������������ 416
Using Nonvolatile SIMD Registers������������������������������������������������������������������������������������������������������ 420
Macros for Function Prologues and Epilogues����������������������������������������������������������������������������������� 425

Summary���������������������������������������������������������������������������������������������������������������������� 431

vii
■ Table of Contents


■Chapter 13: AVX Assembly Language Programming: Part 1����������������������������� 433
Integer Arithmetic��������������������������������������������������������������������������������������������������������� 433
Addition and Subtraction�������������������������������������������������������������������������������������������������������������������� 433
Multiplication�������������������������������������������������������������������������������������������������������������������������������������� 437
Bitwise Logical Operations����������������������������������������������������������������������������������������������������������������� 441
Arithmetic and Logical Shifts������������������������������������������������������������������������������������������������������������� 443

Image Processing Algorithms��������������������������������������������������������������������������������������� 444


Pixel Minimum and Maximum������������������������������������������������������������������������������������������������������������ 444
Pixel Mean Intensity��������������������������������������������������������������������������������������������������������������������������� 448

Summary���������������������������������������������������������������������������������������������������������������������� 453

■Chapter 14: AVX Assembly Language Programming: Part 2����������������������������� 455
Floating-Point Operations��������������������������������������������������������������������������������������������� 455
Floating-Point Arithmetic�������������������������������������������������������������������������������������������������������������������� 455
Floating-Point Compares�������������������������������������������������������������������������������������������������������������������� 461

Floating-Point Arrays���������������������������������������������������������������������������������������������������� 465


Mean and Standard Deviation������������������������������������������������������������������������������������������������������������ 466
Distance Calculations������������������������������������������������������������������������������������������������������������������������� 470

Floating-Point Matrices������������������������������������������������������������������������������������������������ 477


Summary���������������������������������������������������������������������������������������������������������������������� 481

■Chapter 15: AVX2 Assembly Language Programming: Part 1��������������������������� 483
Integer Arithmetic��������������������������������������������������������������������������������������������������������� 483
Basic Operations��������������������������������������������������������������������������������������������������������������������������������� 483
Size Promotions���������������������������������������������������������������������������������������������������������������������������������� 486

Image Processing��������������������������������������������������������������������������������������������������������� 490


Pixel Clipping�������������������������������������������������������������������������������������������������������������������������������������� 491
RGB to Grayscale�������������������������������������������������������������������������������������������������������������������������������� 495
Pixel Conversions������������������������������������������������������������������������������������������������������������������������������� 501

Summary���������������������������������������������������������������������������������������������������������������������� 504

viii
■ Table of Contents


■Chapter 16: AVX2 Assembly Language Programming: Part 2��������������������������� 505
Floating-Point Arrays���������������������������������������������������������������������������������������������������� 505
Floating-Point Matrices������������������������������������������������������������������������������������������������ 510
Matrix Multiplication��������������������������������������������������������������������������������������������������������������������������� 510
Matrix (4 × 4) Multiplication��������������������������������������������������������������������������������������������������������������� 514
Matrix (4 × 4) Vector Multiplication���������������������������������������������������������������������������������������������������� 518

Signal Processing��������������������������������������������������������������������������������������������������������� 525


Summary���������������������������������������������������������������������������������������������������������������������� 530

■Chapter 17: AVX-512 Assembly Language Programming: Part 1���������������������� 533
Integer Arithmetic��������������������������������������������������������������������������������������������������������� 533
Basic Operations��������������������������������������������������������������������������������������������������������������������������������� 533
Masked Operations����������������������������������������������������������������������������������������������������������������������������� 537

Image Processing��������������������������������������������������������������������������������������������������������� 542


Image Thresholding���������������������������������������������������������������������������������������������������������������������������� 542
Image Statistics���������������������������������������������������������������������������������������������������������������������������������� 546

Summary���������������������������������������������������������������������������������������������������������������������� 552

■Chapter 18: AVX-512 Assembly Language Programming: Part 2���������������������� 553
Floating-Point Arithmetic��������������������������������������������������������������������������������������������� 553
Basic Arithmetic��������������������������������������������������������������������������������������������������������������������������������� 553
Compare Operations��������������������������������������������������������������������������������������������������������������������������� 558

Floating-Point Matrices������������������������������������������������������������������������������������������������ 561


Covariance Matrix������������������������������������������������������������������������������������������������������������������������������� 561
Matrix Multiplication��������������������������������������������������������������������������������������������������������������������������� 568
Matrix (4 x 4) Vector Multiplication����������������������������������������������������������������������������������������������������� 573
Signal Processing������������������������������������������������������������������������������������������������������������������������������� 578

Summary���������������������������������������������������������������������������������������������������������������������� 586

■Chapter 19: SIMD Usage and Optimization Guidelines�������������������������������������� 587
SIMD Usage Guidelines������������������������������������������������������������������������������������������������ 587
C++ SIMD Intrinsic Functions or x86 Assembly Language����������������������������������������������������������������� 588

ix
■ Table of Contents

SIMD Software Development Guidelines���������������������������������������������������������������������� 589


Identify Functions for SIMD Techniques��������������������������������������������������������������������������������������������� 589
Select Default and Explicit SIMD Instruction Sets������������������������������������������������������������������������������ 589
Establish Benchmark Timing Objectives��������������������������������������������������������������������������������������������� 590
Code Explicit SIMD Functions������������������������������������������������������������������������������������������������������������� 590
Benchmark Code to Measure Performance���������������������������������������������������������������������������������������� 590
Optimize Explicit SIMD Code�������������������������������������������������������������������������������������������������������������� 591
Repeat Benchmarking and Optimization Steps���������������������������������������������������������������������������������� 591

Optimization Guidelines and Techniques���������������������������������������������������������������������� 591


General Techniques���������������������������������������������������������������������������������������������������������������������������� 591
Assembly Language Optimization Techniques����������������������������������������������������������������������������������� 592

SIMD Code Complexity vs. Performance���������������������������������������������������������������������� 594


Summary���������������������������������������������������������������������������������������������������������������������� 602

■Appendix A: Source Code and Development Tools��������������������������������������������� 603
Source Code Download and Setup������������������������������������������������������������������������������� 603
Development Tools������������������������������������������������������������������������������������������������������� 604
Visual Studio and Windows���������������������������������������������������������������������������������������������������������������� 604
GCC and Linux������������������������������������������������������������������������������������������������������������������������������������ 616


■Appendix B: References and Resources������������������������������������������������������������ 621
C++ SIMD Intrinsic Function Documentation��������������������������������������������������������������� 621
X86 Programming References������������������������������������������������������������������������������������� 621
X86 Processor Information������������������������������������������������������������������������������������������� 622
Software Development Tools���������������������������������������������������������������������������������������� 622
Algorithm References��������������������������������������������������������������������������������������������������� 622
C++ References����������������������������������������������������������������������������������������������������������� 623
Utilities, Tools, and Libraries����������������������������������������������������������������������������������������� 624

Index��������������������������������������������������������������������������������������������������������������������� 625

x
About the Author

Daniel Kusswurm has over 35 years of professional experience as a


software developer, computer scientist, and author. During his career,
he has developed innovative software for medical devices, scientific
instruments, and image processing applications. On many of these
projects, he successfully employed C++ intrinsic functions, x86 assembly
language, and SIMD programming techniques to significantly improve
the performance of computationally intense algorithms or solve unique
programming challenges. His educational background includes a BS
in electrical engineering technology from Northern Illinois University
along with an MS and PhD in computer science from DePaul University.
Daniel Kusswurm is also the author of Modern X86 Assembly Language
Programming (ISBN: 978-1484200650), Modern X86 Assembly Language
Programming, Second Edition (ISBN: 978-1484240625), and Modern Arm
Assembly Language Programming (ISBN: 978-1484262665), all published
by Apress.

xi
About the Technical Reviewer

Mike Kinsner is a principal engineer at Intel developing languages and parallel programming models for a
variety of computer architectures. He has recently been one of the architects of Data Parallel C++. He started
his career at Altera working on high-level synthesis for field-programmable gate arrays and still contributes
to spatial programming models and compilers. Mike is a representative within the Khronos Group standards
organization, where he works on the SYCL and OpenCL open industry standards for parallel programming.
Mike holds a PhD in computer engineering from McMaster University and recently coauthored the
industry’s first book on SYCL and Data Parallel C++.

xiii
Acknowledgments

The production of a motion picture and the publication of a book are somewhat analogous. Movie trailers
extol the performances of the lead actors. The front cover of a book trumpets the authors’ names. Actors and
authors ultimately receive public acclamation for their efforts. It is, however, impossible to produce a movie
or publish a book without the dedication, expertise, and creativity of a professional behind-the-scenes team.
This book is no exception.
I would like to thank the talented editorial team at Apress including Steve Anglin, Mark Powers, and
Jim Markham for their efforts and contributions. I would also like to thank the entire production staff
at Apress. Michael Kinsner warrants applause and a thank you for his comprehensive technical review
and constructive comments. Ed Kusswurm merits kudos for reviewing each chapter and offering helpful
suggestions. I accept full responsibility for any remaining imperfections.
Thanks to my professional colleagues for their support and encouragement. Finally, I would like to
recognize parental nodes Armin (RIP) and Mary along with sibling nodes Mary, Tom, Ed, and John for their
inspiration during the writing of this book.

xv
Introduction

SIMD (single instruction multiple data) is a parallel computing technology that simultaneously executes the
same processor operation using multiple data items. For example, a SIMD-capable processor can carry out
an arithmetic operation using several elements of a floating-point array concurrently. Programs often use
SIMD operations to accelerate the performance of computationally intense algorithms in machine learning,
image processing, audio/video encoding and decoding, data mining, and computer graphics.
Since the late 1990s, both AMD and Intel have incorporated various SIMD instruction set extensions
into their respective x86 processors. The most recent x86 SIMD instruction set extensions are called AVX
(Advanced Vector Extensions), AVX2, and AVX-512. These SIMD resources facilitate arithmetic and other
data processing operations using multiple elements in a 128-, 256-, or 512-bit wide processor register (most
standard x86 arithmetic operations are carried out using scalar values in an 8-, 16-, 32-, or 64-bit wide
register).
Despite the incorporation of advanced SIMD capabilities in x86 modern processors, high-level
language compilers are sometimes unable to fully exploit these resources. To optimally utilize the SIMD
capabilities of a modern x86 processor, a software developer must occasionally write SIMD code that
explicitly employs the AVX, AVX2, or AVX-512 instruction sets. A software developer can use either C++
SIMD intrinsic functions or assembly language programming to accomplish this. A C++ SIMD intrinsic
function is code that looks like an ordinary C++ function but is handled differently by the compiler. More
specifically, the compiler directly translates a C++ SIMD intrinsic function into one or more assembly
language instructions without the overhead of a normal function (or subroutine) call.
Before continuing, a couple of caveats are warranted. First, the SIMD programming techniques
described in this book are not appropriate for every “slow” algorithm or function. Both C++ SIMD intrinsic
function use and assembly language code development should be regarded as specialized programming
tools that can significantly accelerate the performance of an algorithm or function when judiciously
employed. However, it is important to note that explicit SIMD coding usually requires extra effort during
initial development and possibly when performing future maintenance. Second, it should be noted that
SIMD parallelism is different than other types of parallel computing you may have encountered. For
example, the task-level parallelism of an application that exploits multiple processor cores or threads to
accelerate the performance of an algorithm is different than SIMD parallelism. Task-level parallelism and
SIMD parallelism are not mutually exclusive; they are frequently utilized together. The focus of this book is
x86 SIMD parallelism and software development, specifically the computational resources of AVX, AVX2,
and AVX-512.

 odern Parallel Programming with C++


M
and Assembly Language
Modern Parallel Programming with C++ and Assembly Language is an instructional text that explains
x86 SIMD programming using both C++ intrinsic functions and assembly language. The content and
organization of this book are designed to help you quickly understand and exploit the computational

xvii
Discovering Diverse Content Through
Random Scribd Documents
183 Better known by its running title, The Brytish Monarchie. It
is a very rare work, only 100 copies having been printed.
The author’s own copy is in the British Museum.

184 P.7.

185 Sir John Constable’s case. Moore, Hist. Foreshore, 225,


from Hargrave MSS., 15, fol. 95d. In the case for the
crown the claim to the sea is very briefly put: “Car quant
est floud est parcel del mere que est solement en le Roign
et nemy en ascun subject; car est pur passage pur
chescun, mes owner de ceo nul si non le Roign.”
Anderson, Les Reports du Treserudite, i. 86. (ed. 1664). In
a MS. in the Cottonian collection (Galba, C. 11, “Acta inter
Angliam et Belgium, 1564-1567”) it is said the jurisdiction
of the Prince in the adjoining sea extends for a distance of
100 miles unless (1) in seas lying between the territories
of two princes which contain less than a hundred miles, in
which case it extends to the mid-line—usq’ ad mediũ
eiusdem maris extenditur; (2) where another prince has a
right to the whole sea. The authorities referred to are
Bartolus, Angelus, Paulus de Castro, and Joan de Platea.

186 Op. cit., 21.

187 Two MS. copies exist, one bound up with Dee’s copy of the
General and Rare Memorials in the British Museum, which
was sent to Dyer with the MS., the other in Harleian MSS.
249, fol. 95. The latter, which is a draft, is addressed “To
my very honorable frende Syr Edward Dyer, Knight,” and a
note inscribed on it says, “Written by Dr John Dee, out of
whose library I bought it after his death Ao Do 1625, S.D.”
The title on both MSS. is ΘΑΛΑΤΤΟΚΑΡΤΙΑ ΒΡΕΤΤΑΝΙΚΗ:
Miscelanea quædam extemporanea de Imperii Britannici
Iurisdictione in Mari; and both are dated 8th September
1597.
188 Lat. 49° 6´ N., long. 2° 49´ W.

189 “All those that pass within our sea jurisdiction (either
absolute or respective) and therein commit any notable
offence against us may lawfully by our power be taken;
and the same offenders may as lawfully and justly be
punished, as if on our land territory an offence like, or of
like degree of injury, were by them against us committed.”
“Absolute” jurisdiction applied to the sea where both
coasts belonged to England; “respective” where it
terminated half seas over.

190 In 1597 Dee expressed his grief and surprise that so little
had been done or attempted with regard to the
sovereignty of the sea, “and so my labours (after a sort)
vaynely employed.” MS.

191 Bullarium Romanum Novissimum, i. 346. “Insulæ novi


Orbis à Ferdinando Hispaniarum Rege, et Elisabeth Regina
repertæ, et reperiendæ, conceduntur eisdem,
propagandæ fidei Christianæ causa ... omnes insulas et
terras firmas inventas et inveniendas, detectas ad
detegendas versus Occidentem et Meridiem fabricando, et
construendo unam lineam à Polo Arctico scilicet
Septentrione, ad Polum Antarcticum, scilicet Meridiem,
sive terræ firmæ, et insulæ inventæ et inveniendæ sint
versus Indiam aut versus aliam quamcumque partem,
quæ linea distet à qualibet Insularum, quæ vulgariter
nuncupantur de los Azores y cabo vierde, centum læucis
versus Occidentem et Meridiem,” &c. Art. 8, “prohibet aliis
accessum ad illas insulas pro mercibus habendis absque
Regis licentia.”

192 Harrisse, The Diplomatic History of America, 78.

193 Selden, Mare Clausum, i. c. xvii.


194 Selden, loc. cit.

195 Camden, Annales, 225 (ed. 1635).

196 Hatfield MSS., ii. 684. “Whether Your Majesty’s Subjects


may lawfully trade into the Indies.” Undated, but
calendered under the year 1578.

197 Hautefeuille, Hist. des Origines, des Progrès, et des


Variations du Droit maritime international, 15. Hall, A
Treatise on International Law, 142.

198 Rot. Parl., iv. 79b. The petition declared that owing to the
fish having deserted the coasts where they used to be
taken, the fishermen had been forced to go to Iceland and
other places for six or seven years past in order to catch
them. English fishermen, however, had frequented Iceland
long before that time.

199 Fœdera, ix. 322.

200 Rot. Parl., iv. 348, 378. 8 Hen. VI., c. 2.

201 Fœdera, xii. 381.

202 Ibid., xiii. 798.

203 State Papers, Dom., Elizabeth, clxxx. 26, 15th July 1585.

204 Ibid., ccxiii. 92.

205 Fœdera, xvi. 278. A license granted in 1570 to an


Englishman, one Raymond Binge, for fishing at Iceland for
seven years, gave permission for his boats to be kept and
wintered in the ports there, on payment of the customs
and abstaining from trading, as well as freedom of fishing
except where prohibited by royal edicts, reserved for the
king’s use, or granted to others. Brit. Mus. Vespasian
MSS., C. xiv. fol. 21.

206 Complaint of the Mayor of Kingston-upon-Hull to Cecil, 2nd


July 1599. State Papers, Dom., cclxxi. 68.

207 Fœdera, xvi. 395, 432.

208 Brit. Mus. Vespasian MSS., C. xiv. fol. 22. Fœdera, xvi. 431.

209 State Papers, Dom., cclxxiv.

210 Fœdera, xvi. 433.

211 Brit. Mus. Lansdowne MSS., 142, fol. 380.

212 23 Eliz., c. 7, 1580-81. Brit. Mus. Lansd. MSS., 14.

213 39 Eliz., c. 10.

214 The price of stock-fish had risen from £12 a last in 1584 to
£18 and £20 in 1597, and the price of cured ling in the
same time advanced from £3 to £5, 5s. per cwt. State
Papers, Dom., cclxv.

215 A commission of eleven peers, three bishops, and two law-


officers had been appointed in 1593 for the repeal of the
Act respecting the importation of salted fish and herrings.
Ibid., ccxliv. 84.

216 Ibid., cxlvii. 21, 22.

217 27 Eliz., c. 11.

218 35 Eliz., c. 7.

219 Jeninges, A briefe discouery of the damages that happen


to this Realme by disordered and vnlawfull diet, 1593.
Hitchcock, A briefe note of the benefits that grow to this
Realme by the observation of Fish-Daies, Hatfield MSS.,
1595. State Papers, Dom., cclxv. 25. Remembrancia, 391
et seq.

220 Every Man in His Humour, Act 3, sc. 4.

221 Froude, Hist. England, iii. 69.

222 King Edward’s Journal, in Burnet, Hist. Reformation, ii. (v.


of ed. 1865). Oppenheim, Hist. Administration Roy. Navy,
106.

223 Acts of the Privy Council of England, iv. 37. 7th May 1552.

224 Selden, Mare Clausum, lib. ii. c. xxvi.

225 Raleigh, A Discourse of the Invention of Ships, Collected


Works, viii. 326. Monson, Naval Tracts, in Churchill’s
Collection of Voyages and Travels, iii.

226 Monson, op. cit. Laughton, Fortnightly Review, Aug. 1866.

227 Froude, op. cit., viii. 68. Laughton, loc. cit.

228 An undated State Paper, calendared under the year 1604,


entitled “Reglement for Preventing Abuses in and about
the Narrow Seas,” contains a claim by the king to a most
absolute dominion over the Four Seas (State Papers,
Dom., James, xi. 40). It appears, however, to be merely a
copy of the similar regulation prepared in 1633 by Sir
Henry Martin (see p. 252). It is not contained in the
volume of royal proclamations published in 1609, and is
not referred to by Selden. It has no doubt been wrongly
calendared.
229 It is given in Appendix D, from A Booke of Proclamations,
published since the beginning of his Majesties most happy
Reigne ouer England, &c., Vntill this present Moneth of
Febr. 3, Anno. Dom. 1609. Cum Priuilegio, p. 98.

230 “Item, conventum et conclusum est, quod, dicto bello


durante, nullus subditus principum prædictorum, intra
portus et sinus maris quoscumque, flumina, ostia
fluminum, gurgites, aquas dulces, stationes navium, et
præsertim stationem vulgariter vocatam les Dunes, aut
alia loca maritima quæcumque jurisdictioni dicti Regis
Angliæ subjecta aliquam navem mercatoriam, onerariam,
armatam vel non armatam, onustam seu vacuam,
cujuscumque quantitatis aut oneris fuerit, de quacumque
natione eadem navis extiterit, capere, spoliare, diripere,
seu merces, victualia, aut armamenta quæcumque, ab
eisdem navibus, aut earumdem nautis auferre, nec eisdem
vim, violentiam, aut molestationem aliquam inferre possit,
aut debeat,” &c. Dumont, Corps Diplomatique, IV. i. 352.

231 This interesting document is printed in Appendix E, from


State Papers, Dom., James I., vol. 13 (1605), No. 11; No.
12 is another of the same. It is not the original, but a
copy, the names being all in the same hand as the body of
the paper. Diligent search among the records has failed to
furnish the “plott” referred to, but there is no reason to
doubt that the reproduction of it by Selden (Mare
Clausum, lib. ii. c. xxii.), and shown here on fig. 3, is an
accurate representation. Selden states that the plott or
chart was engraved, and copies sent to the officers
concerned.

232 It will be noticed from fig. 4, where the lines between the
headlands are shown on a modern map, that some of the
“chambers” on the east coast have entirely disappeared,
no doubt owing to the erosion or silting up of the coast at
those places during the last three hundred years.

233 In stormy weather as many as 300 or 400 sail of


Hollanders took refuge in St George’s Channel at a time.
State Papers, Dom., xlv. 23 (1609).

234 Cunningham, The Growth of English Industry and


Commerce, i. 424.

235 Gardiner, Hist. England, i. 103.

236 Declaratie van de visscherijen in Holland Zeeland en


Vlaanderen. Fruin, Tien Jaren uit den Tachtigjarigen
Oorlog, 1588-1598, p. 186.

237 Descrittione Di M. Lodovico Gvicciardini Patritio Florentino,


Di Tvtti i Paesi Bassi, Altrimenti Detti Germania Inferiore,
Antwerp, 1567, p. 21. The value of the cod caught was
placed at £150,000 sterling per annum.

238 Hadrianus Junius, Batavia, p. 203. The work was written


between 1565 and 1569, and published in 1588.

239 Hitchcock, A Pollitique Platt. The author says that when he


was at the wars in 1553, more than 400 busses were set
forth from twelve towns in the Low Countries. Dee,
General and Rare Memorials.

240 Faulconnier, Description Historique de Dunkerque, i. 47,


53, 121.

241 Van Meteren, Historie der Nederlandscher ende haerder


Naburen Oorlogen (1614), fol. 466. This author says the
maritime power of the States was shown in the same year,
when between 800 and 900 ships departed for the Baltic
within the space of two or three days’ tides.
242 John Keymer’s Observation made upon the Dutch Fishing
about the year 1601. Demonstrating that there is more
Wealth raised out of Herrings and other Fish in his
Majesties Seas, by the neighbouring Nations in one Year,
then the King of Spain hath from the Indies in Four.
London, Printed from the original Manuscript, for Sir
Edward Ford, in the year 1664. Keymer states that he
found in Holland more than 20,000 sail of ships and
“hoyes,” more than was possessed by England, France,
Spain, and other eight countries in Europe. The same
figure is given by Sir Thomas Overbury, who visited the
Netherlands in 1609 (Observations in his Travels, upon the
State of the Seventeen Provinces, 1626).

243

Observations touching Trade and Commerce with the


Hollander, and Other Nations; presented to King James,
wherein is proved that our Sea and Land Commodities
serve to enrich and strengthen other Countries against our
own. Raleigh’s Collected Works, viii. 351. Oldys, in his Life
of Raleigh, which was published in 1736, says there was
some reason to doubt whether Sir Walter Raleigh was the
author of this treatise: it was first printed in 1653, first
associated with Raleigh’s name by being bound up with
his “Remains” in 1656, and first definitely said to be
Raleigh’s by Roger Coke in his Detection of Court and
State; and he gives reasons for the opinion that it was
written by John Keymer and not by Raleigh (Collected
Works, i. 441). But, as Raleigh’s latest biographer states,
Raleigh still has the credit of it (Stebbing, Sir Walter
Raleigh, 267). I have, however, found the original signed
manuscript copy among the State Papers for 1620 (State
Papers, Dom., cxviii. 114, December 1620), and an
unsigned and slightly altered copy among those for 1623
(State Papers, Dom., clvii. 45). The original is endorsed,

Keymers booke of observac͠ ons for your moste excellent
Matie touchinge trade and traffique beyond ye Seas and in
England wherein he certaynly findeth yt your sea and land
Commodities doe searve to inrich and strengthen other
Cuntries agnst your Kingdome; wch were ye urgent causes
why he endeavoured himselfe to take extraordynarie
paynes for ye redresse: soe it maie stande wth your Maties
good Likinge. 1620. It is subscribed, “Your Maties most
loyall and true harted Subject, John Keymer,” and it is the
same treatise as is published in Raleigh’s Works, with a
few trifling verbal differences, while the concluding
sentence is omitted in the printed form—viz., “To
conclude, England is a great and famous body and would
be farr greater, richer and stronger, if the ten fingers were
rightly imployed.” Further proof exists that Keymer was
the author of this much-discussed treatise. Its object was
to show how the trade and revenue might be greatly
increased, and the author begged the king to have a
commission appointed to examine witnesses as to his
proposals. This commission was appointed two years later,
as appears from the following entry in the Grant Book in
1622: “20 Dec. Com̃ to Charles, pr. of Wales, John Bp. of
Linc., Ld Keeper of ye g. seale, Lewis Duke of Lennox,
Geo. Marquis Buck., &c. to hear the propositions which
shall be made by John Keymer and to consider whether
they will tend to the good of ye King, and commonwealth
as is pretended” (State Papers, Dom., Jas. I. (Grants), vol.
141, p. 352). There does not appear to be any further
mention of the matter. This John Keymer is supposed to
be the same as a person of that name who was licensed
by Raleigh about 1584 to sell wines at Cambridge. Among
the MSS. at Hatfield are letters from him, dated in 1598,
to Cecil and the Earl of Essex, in which he speaks of his
services, of “his travels and labours to find out the
practises used beyond the seas to their advantage and our
great danger and how to prevent the same,” and of his
works, one of which he said showed how to increase the
Queen’s treasure above £100,000 a year. He also
corresponded with Carleton in 1619. In his address to the
king, prefixed to the treatise of 1620, he mentions that
“about fourteen or fifteen years past” he had presented
him with “a book of such extraordinary importance for the
honour and profit” of his Majesty and posterity, which was
doubtless the earlier tract referred to above, and would fix
its date about 1605 or 1606. He was also engaged on the
fishery question about 1612 (doubtless in connection with
the proposed society), because Tobias Gentleman, whose
work was published in the spring of 1614, tells us that he
was visited “some two yeares past” by “Maister John
Keymar,” who was collecting information about the
fisheries, with the view of placing it before the Council
(Englands Way to Win Wealth, 3).

Fig. 5.—Facsimile of Keymer’s Signature to his ‘Book of Observations.’

The copy of Keymer’s tract, which is among the State


Papers of 1623, is unsigned, and is simply calendared as
“Tract addressed to the King, consisting of observations
made by the writer in his travels on the coasts,” &c.; but
the person who calendared the paper has written on it, in
pencil, “q. By Sir Walter Cope (ob. 1614). See 1612, a
letter or discourse to the King, to which this was
attached,” and has added the name “Walter Cope” at the
end. The paper referred to (State Papers, Dom., vol. 71,
No. 89) has written on it in the old hand, “Sr Walter Cope
to K.,” and “Anno Domini 1612. A present for the Kinges
most excellent Maiestie.” It is only mentioned here
because the draft of it, which is the next paper in the
volume (No. 90) and has several corrections on the first
page, bears the following note in one of the corners,
“Nota Mr Chancellor and Malynes wife (?) the ... of Maye,
Ralegh.” The meaning is obscure, but perhaps it may be
surmised from the contents that Malynes, who was at that
time concerned with the fishery society proposals, had
submitted it to Sir Walter Raleigh, and that ultimately it
was presented to the king by Sir Walter Cope, who was on
intimate terms with him.

244 Englands Way to Win Wealth, and to employ Ships and


Mariners; or, A plaine description what great profite it will
bring vnto the Commonwealth of England, by the
Erecting, Building, and aduenturing of Busses, to Sea, a
Fishing: With a true Relation of the inestimable Wealth
that is yearly taken out of his Majesty’s Seas by the
Hollanders, &c., by Tobias Gentleman, Fisherman and
Mariner, London, 1614.

245 State Papers, Dom., Jas. I., xlvii. 114.

246 Keymer, Observations on Dutch Fishing; Gentleman, op.


cit.; Buchanan, Rerum Scot. Hist., lib. i. c. xlix; Leslie, De
Origine Moribus et Rebus Gestis Scotorum, 39; Register
Privy Council of Scotland, ii. 656; MSS. Advoc. Lib., 31. 2.
16.

247 State Papers, Dom., xxxii. 31. Other accounts are as


follows. In 1609 the Earl of Salisbury wrote (erroneously)
that while fifty or sixty years before only one or two
hundred foreign vessels came to fish on the east coast,
they then numbered two or three thousand sail
(Winwood, Memorials, iii. 50). Sir William Monson in the
same year placed the number of Hollander busses at 3000
and the number of men at over 30,000 (State Papers,
Dom., xlvii. 112, 114). Sir Nicholas Hales also estimated
the number of men at 30,000 (Ibid., xlv. 23; cclxxiv. 67).
In the following year the Dutch ambassadors admitted
that 20,000 men were employed in the great herring
fishery, as well as other 40,000 in connection with it on
shore (Ibid., lxvii. 111). A little later, in 1616, the
Secretary to the Duke of Lennox told the Dutch
ambassador that in the previous June, 1500 or 1600
Hollander busses were at Shetland (Add. MSS. Brit. Mus.,
17,677, J, fol. 160). In 1618 the number fishing on the
east coast of Scotland sometimes exceeded 2000 sail
(MSS. Advoc. Lib., 31. 2. 16). Malynes in 1622 placed the
number of busses from Holland and Zealand at 2000
(Consuetudo vel Lex Mercatoria, 89). Two years later a
Spanish agent described them as consisting of 2400
vessels, guarded by 40 men-of-war, and scattered over an
area of 200 leagues (State Papers, Dom., dxxi. 30). In
1629 Secretary Coke, who derived the information from a
Scottish source, said the Hollander busses sometimes
amounted to 3000 sail; three years later he put the
number in connection with the fishery off Yarmouth at
“above a thousand”; at this time the French vessels
numbered 40 (Ibid., Chas. I., clii. 63; ccxxix. 79). Beaujon
(op. cit., p. 64) expresses the opinion that 2000 busses
were the maximum number.

248 To Pomerania, Poland, “Spruceland,” Denmark, Liefland,


Russia, Sweden, Germany, Brabant, Flanders, France,
“Lukeland,” England, Greece, Egypt, Venice, Leghorn, and
all over the Mediterranean, and even as far as Brazil.
249 State Papers, Dom., xlvii. 112.

250 To the King’s most excellent Majesty: A Declaration of the


fishing of Herring, Cod, and Ling, and how much the
favour or disfavour of Your Royal Majesty concerneth the
Hollanders. Ibid., xxxii. 30; cclxxix. 67.

251 Misselden, The Circle of Commerce, or the Balance of


Trade, 1623, p. 121. It may be said that the aggregate
quantity of herrings now taken in the North Sea, and
mostly by Scottish and English fishermen, equals about
3,500,000 barrels in a year.

252 Manship, History of Great Yarmouth, 119, 121.

253 Gentleman, op. cit., 7, 32.

254 Keymer, Observations on Dutch Fishing.

255 Manship, op. cit., 97, 120. The work was written between
1612 and 1619.

256 Gentleman, op. cit., 36; Swinden, History of Great


Yarmouth, 465; State Papers, Dom., xlvii. 112, 114.

257 Meynert Semeyns, Een corte beschryvinge over de Haring-


visscherye in Hollandt.

258 Keymer, Observations on Dutch Fishing; Monson, Naval


Tracts, in Churchill’s Collection, iii. 467; H. Robinson,
Briefe Considerations concerning the Advancement of
Trade, p. 50; England’s Great Interest by encouraging the
setting up of the Royal Fishery, &c., &c.

259 A Demonstration of the Hollanders increase in Shipping


and our Decay herein. State Papers, Dom., xlvii. 112.
260 The Trades Increase. Keymer, Observations on Dutch
Fishing, &c. Observations touching Trade, &c., Raleigh’s
Works, viii. 374. State Papers, Dom., xlviii. 114.

261 A Discourse of the Invention of Ships. Works, viii. 325.

262 In one of the most elaborate and detailed of the proposals


for the building of busses, the daily allowance of beer for
each man was to be a gallon, as in the king’s ships: the
buss was to go to sea with 56 herring barrels full of beer.
E. S.—Britaines Bvsse, or a Computation as well of the
Charge of a Bvsse or Herring fishing ship as also of the
Gain and Profit thereby. London, 1615.

263 Keymer, Observations on Dutch Fishing. The industrious


Hollander was held up as an example to the English. “If
any be so weak,” said one writer, “to think this mechanical
fisher trade not feasible to the English people, to him I
may say with Solomon, Go to the Pismire! Look upon the
Dutch! Thou Sluggard! learn of them! They do it daily in
the sight of all men at our own doors, upon our own
coasts.” “Shall we,” said another, “neglect so great
blessings? O slothful England, and careless Countrymen!
Look but on these fellows, that we call the plump
Hollanders; behold their diligence in fishing and our own
careless negligence.”

264 State Papers, Dom., James I., lxxi. 89. Malynes, who, as
already suggested in the note on page 128, may have
been the author of Cope’s tract, said exactly the same
thing in 1622—that there had been a continual agitation
for over thirty years to make busses and fisher-boats. The
Maintenance of Free Trade, 42.

265 J. Bowssar to Sir Julius Cæsar, 14th October 1607, Brit.


Mus. Lansdowne MSS., 142, fol. 373.
266 A Project for to restore unto the King’s Majestie his Dueties
of Fishing by re-establishing ye Auncient Manner of fishing
for herringe, Coad, and Ling, for maintenaunce of
Navigation and Marryners with greatt increase of
Traffique, 22nd April 1609, Brit. Mus. Lansdowne MSS.,
142, fol. 371. State Papers, Dom., xlviii. 95.

267 Treaty of Antwerp, 30 March/9 April 1609.

268 A rubric in the copy at the Record Office says, “By


Proclamation first, most convenient to all the world.”

269 State Papers, Dom., xlviii. 94. It is written on parchment


and imperfect, and endorsed, “Mr Rainsford’s Answeares.”

270 See p. 64.

271 To the King’s Most excellent Majestie: A Declaration of the


Fishing of Herring, Codd, and Ling, and how greatly the
favour or disfavour of Your Royal Majesty concerneth the
Hollanders. State Papers, Dom., xxxii. 32. A Declaration
how much the Favour or Disfavour of Your Royal Majestie
doth concern the Prosperity or Adversitie of the
Hollanders: and what inconvenience may ensue, and how
to praevent the same to the honour and safety of your
Majesty and the tranquillitie of the Netherlanders. Ibid.,
xlv. 23.

272 A Demonstration of the Hollanders Increase in Shipping


and our Decay herein. Ibid., xlvii. 112. Particulars of the
Lawes observed by other Nations touching fishing, and
the Advantages that would accrue from establishing an
English Fishing fleet. Ibid., 114.

273 Records of the Convention of the Royal Burghs of


Scotland, ii. 203, July 2, 1605.
274 State Papers, Dom., xxxii. 31.

275 State Papers, Dom., xlv. 22. The petition was signed by
fishermen of Yarmouth, Dover, Hastings, Rye, Hythe, and
Folkestone. It is said in the petition that they had
previously craved both the king and the Council for
redress, without avail.

276 The author of Britaines Buss had heard, but did not
believe, stories of the “very foul and insolent dealing of
their bussmen with our poor weak fishermen upon our
coasts.” Tobias Gentleman, who admired the Dutch for
their industry, said they scorned us only “for being so
negligent of our profit, and careless of our fishing; and
they do daily flout us that be the poor fishermen of
England, to our faces at sea, calling to us and saying, ‘Ya
English, ya zall, or oud scoue dragien,’ which in English is
this: ‘You English, we will make you glad for to wear our
old shoes.’” Englands Way to Win Wealth, p. 44.

277 Brit. Mus. Lansdowne MSS., 142, fol. 375. A copy of the
letter of the Lords of the Council, in the handwriting of Sir
Julius Cæsar, is as follows: After our very hearty
recommendations. Whereas his Majesty hath of late been
moved vpon many consyderations arising from the
complayntes of his subiects, to take some course of
restraynt of many inconveniences depending vpon the
excesse of libertie, wch is taken by the subiectes of
forraigne princes and states to fish vppon his coast; By
which, not onlie his owne ffishermen receive wrong in
their fishing, but the verie Coast-Townes themselves are
much decayed for lack of meanes to sett their people on
work. To wch end hee had resolved to set forth a
proclamation to th’effect of that wch is hereinclosed:
Fforasmuch as vppon perusall of some Treaties from King
Henry 7ths tyme till this daye betweene the Crowne of
England and the house of Burgundy, we fynde certeyne
clauses, by which there maye arise some question how
farre any such Prohibition maye concurre with the practice
of the same for so much as shall concerne the subiects of
that Estate; Of wch particulars it is necessary that some
deliberation were taken, beefore his Matie proceeded to a
generall execution of the same: We have thought good to
requyre yow ioyntly and severally to peruse all those
Treaties, and to consyder of them, and all other thinges,
by wch the lawfullnes or vnlawfulnes maye appeare of this
proceeding; Which being don wee shall expect some
report from you for his Maties better satisfaction.

Wherein wee doubt not but yow will proceede wth all
convenient expedition. And so will bid yow hartelie
farewell.

Ffrome the Court at Whitehall


first of Ffebruarie, 1606.
Mr Secretary Herbert.
Mr Chancellor of the Exchequer
Sr. Daniel Dun.
Sr. Thomas Crompton.
Sr. Christopher Perkins.

Yor Verie loving friendes,


Subscribed by the
1. L. Chancellor.
2. L. Treasour.
3. L. Admirall.
4. The Earle of Worcester.
5. The Earle of Salisbury.
6. The Earle of Marr.
7. The L. Stanhop.

This copy is dated 1st February 1606, and the copy of the
report of the Committee is also dated 1606, which would
imply that the matter had been before the Privy Council in
that year. It appears, however, from other evidence that
Sir Julius Cæsar made a mistake in dating the copies.

278 Brit. Mus. Lansdowne MSS., 142, fol. 377. In Sir Julius
Cæsar’s handwriting, and endorsed, “A copy of a letter
from Mr Secretary Herbert, myself, and others to the Lds
of the King’s P. Councell, touching the prohibition of
strangers fishing on the coasts of England,” &c. This
important paper reads as follow: Our humble duties dewe
to yr good LLps. We have according to yr commandement,
considered of the liberty wch is taken by the Subiectes of
forreine Princes and States to fish vppon the kings Maties
coasts by wch not onely the English fishermen receive
wrong in their fishing but the very coast townes
themselves are much decayed for want of meanes to set
their people on work; and we have considered likewise of
the proclamation for the restraint of those many
inconveniences depending vppon the excesse of such
strangers fishing: We haue also pervsed the treaties frõ
Henry the 7th time till this day betweene the Crowne of
England and the House of Burgundy, and we have
considered of them, and of all other thinges by wch (as
wee conceave) the lawfulness or vnlawfulness may
appeare of this proceeding. And are of opinion, that the Ks
Maty may wthout breach of any treatyie nowe in force, or of
the lawe, vppon the reasons specified in the proclamation
sent vnto vs, restreine all strangers frõ fishing vppon his
coasts wthout license, in such moderation and after such
convenient notice given thereof by publik proclamation, as
his Maty shall think fit.

And so we most humbly take our leaves. 14 febr. 1606.

Yor Ldships humbly at commandment,

J. Herbert. Jul. Cæsar. Daniel Dun. Christoph. Parkins.


Tho. Crompton.

From the erasures and corrections (see Fig. 6) there


seems little doubt that the paper is the original draft.

279 Brit. Mus. Lansdowne MSS., 142, fol. 379. In Cæsar’s


handwriting.

280 See Appendix F.

281 Perhaps an oblique reference to Mare Liberum.

282 State Papers, Dom., xlv. 24. Proc. Coll., No. 11.

283 Salisbury to Cornwallis, 8th June 1609. Winwood’s


Memorials of Affairs of State in the Reigns of Q. Elizabeth
and K. James I., iii. 49.

284 Muller, Mare Clausum, Bijdrage tot de Geschiedenis der


Rivaliteit van Engeland en Nederland in de Zeventiende
Eeuw, p. 52. Bosgoed, Bib. Pisc., 347. Resolutiën ... van
Vergaderinge van de Heeren Staten van Hollandt ende
West-Vrieslandt, 2/12 June 1609. “Ter Generaliteyt’s lands
recht voorstaan ter saake van het Engelsch placaat op het
visschen op de kusten en zeeën van Groot Brittannien en
Yrland.”

285 “Ende oic Sijne authoriteyt eñ macht die hy in die See


heeft voir de werelt manifest te maecken.”

286 Sir George Carew to Salisbury, 20th June 1609.


Acknowledges his lordship’s letter, “according the request
made by the ffr. Ambr for one year’s Respite longer for the
ffishers of this nation,” and expressing his pleasure that
other considerations of state so fell out as to give his
Majesty cause to grant them that favour, “for it is like to
increase the amity of the two crowns.”

287 Caron to the States-General, 13/23 July 1609. Brit. Mus.


Add. MSS., 17, 677.

288 Winwood to Salisbury, 6th September 1609. Memorials, iii.


64.

289 The assize-herring was thus described by Skene, in De


Verborum Significatione, annexed to the laws of Scotland,
printed in 1597. “Assisa Halecum. The assise herring
signifies ane certain measure and quantity of herring,
quilk perteinis to the king as ane part of his custumes and
annexed propriety, Jac. 6, p. 15, c. 237, for it is manifest
that Hee shuld have of everie Boat that passis to the
drave, and slayis herring, ane thousand herring of ilk tak
that halds, viz. of Lambmes tak, of the Winter tak, and the
Lentrone tak”—that is, of the summer, winter, and spring
fishings. The assize-herrings appear to have been
originally a contribution to the king’s kitchen. In 1526
James V. granted assize-herrings to Stuart of Ardgowane
(Origines Parochiales Scotiæ, ii. 83). In 1593, in an Act of
the Parliament of Scotland, entitled “Annexatioun of the
Propertie of the Croun that wes nocht annext of befoir,”
the assize-herrings were included (Jac. VI., 1593, c. 32.
Acta, iv. 28), and an Act of 1597, entitled “Assysis hering
may nocht be disponit,” ordained that no infeftment or
alienation in few ferm or otherwise, and all rentals and
dispositions whatsoever, past or to come, were to be null
and void, because they pertained to the king as part of his
customs and annexed property (Acta, iv. 131). Later the
assize-herring was commuted into a money payment. An
Act of Charles I. in 1641 (cap. 117), entitled “Act anent
the Excise of Herring,” on the ground that the collection of
the herrings was “very hard and difficult,” commuted the
thousand herrings in the Firth of Lothian into a money
payment of £6 Scots. In the eighteenth century, when it
had been for the most part granted to individuals, or
farmed, it took the form of a tax ranging from £4 Scots to
£10 Scots per boat or per net, and was felt as a grievous
burden. In the Firth of Forth each boat that was “size-
worthy” (viz., that caught 3000 herrings during the whole
season) had to pay ten shillings as “size-duty.” On the
west coast it amounted to £10 Scots, or sixteen shillings
and eightpence sterling, whether herrings were caught or
not. With regard to the gross value of the tax, those of
the great Dunbar fishings were leased in 1614 for five
years for £1000 Scots, and a yearly rent of 2000 merks
(Reg. Privy Council Scot., x. 282). In 1613 the value of the
“duty of the tack of the assize-herrings,” amounting to
fourteen lasts, which the Earl of Argyle rendered for
Lochfyne, was estimated to be about £36 or £38 sterling
(Melrose Papers, i. 124). In 1598 the assize-herring from
the “east seas” was estimated to amount to 1120 dry
“killing” (cod), which shows it was sometimes paid in
other fish; in 1656-57 it was equal to £130 sterling
(Chalmers, Caledonia, ii. 497); in 1629 Captain Mason
claimed no less than £12,489, 7s. sterling as the value,
with interest, of the assize-herrings of the Hebrides and
North Isles granted to him by James for the years 1610-
11, and not paid (State Papers, Dom., cliv. 13).

290 Arguments for Collecting the Assyze herring from all


Strangers fishing in the North Seas of Scotland, and
Answers to some objections proponet be Sir Noel Caron.
State Papers, Dom., xxxii. 31.

291 Winwood, Memorials, iii. 105, 135, 146, 162. Muller, op.
cit., 56.

292 State Papers, Dom., xlvii. 111. “2. For that it is by the
Lawe of nacions, no prince can Challenge further into the
Sea then he can Com̃ and wth a Cannon except Gulfes wthin
their Land from one point to an other. 3. For that the
boundlesse and rowlinge Seas are as Com̃ on to all people
as the ayre wch no prince can prohibite.” The paper is
endorsed “Reasons vsed by the Hollanders for the
Continuance of Fishing Contrarie to the proclamation
made in May 1609 forbidding of strangers to fish,” and
there is a note, apparently in Cæsar’s writing, saying,
“This note was sent by Emanuell Demetrius who was
present att the discourse.” It is misdated “Aug. 1609.” The
endorsements appear to have been made after 1612,
because at the end it is said, “It was answered by the late
Lord Treasr. Salisburie att a hearing,” &c. A list is given of
those present at the conference—viz., the Earls of
Salisbury, Northampton, Nottingham, Suffolk, Shrewsbury,
and Worcester, Mr Secretary Herbert and Sir Julius Cæsar,
the “Standers by” being Sir T. Edmondes, Sir Daniel Dunn,
Sir Christopher Perkins, Sir William Wade, and Mr Levinus
Emanuell Demetrius,—probably the Levinus Muncke of the
Dutch and other records. It is to be noted that the
argument as to the limitation of the territorial sea by the
range of guns was not contained in the instructions to the
Dutch, as printed by Aitzema (Saken van Staet en
Oorlogh, ii. 406) and Vreede (Vrijheid van Haringvaart, 6;
compare Muller, Mare Clausum, 58, 91), and is not
referred to by them in their Journal, where, however, they
say they put forward “other reasons” than those they
recite (Muller, Mare Clausum, 59). Van Meteren, whose
work was published in 1614 (Historie der Nederlandscher
ende haerder Naburen Oorlogen, &c., fol. 650), reports,
however, that there was a great dispute as to how far a
country’s limit might extend into the open sea, and the
brief note of Levinus seems to be the only record of it.
(“Sy seyden mede, dat het een groote dispute ware,
hoeverre elcx Laudts Custen ofte Limiten inde groote
wijde Zee Oceane mochte strecken.”) The document is of
interest not only from the clear enunciation of the doctrine
at so early a period, but because there are grounds for
thinking that the idea may have originated in the fertile
brain of Grotius. Competent Dutch authorities believe that
Grotius either himself drew up the instructions dealing
with the fishery question or was consulted in their
preparation; and the fact that the argument is not
contained in the official instructions scarcely weakens the
supposition. It was of so drastic and novel a character to
be urged against the pretensions of King James that the
Dutch, anxious to conciliate him, may have followed a
practice not uncommon in diplomacy, and kept it in the
background only to be made use of if a suitable occasion
arose. It is, moreover, known that Grotius had a close
personal relationship with Elias van Oldenbarnevelt, the
envoy to whom the fishery negotiations were specially
entrusted.

293 Vreede, Vrijheid van Haringvaart en Visscherij. Nota, in


den Jare 1610, door de Nederlandsche Gezanten aan de
Engelsche Regering ingediend (Bijdragen voor
Vaderlandsche Geschiedenis en Oudheidkunde, Derde
Deel. Arnhem, 1842). Muller, op. cit., 57; State Papers,
Dom., xlvii. 111; Brit. Mus. Lansdowne MSS., 142, fol.
362. Vreede thinks it probable that the instructions were
drawn up by Grotius; Muller believes that he was at all
events consulted on the matter.

294 State Papers, Dom., xlvii. 111. Vreede, op. cit. Muller, op.
cit. Brit. Mus. Lansdowne MSS., 142, fol. 362. “Answers
for prohibiting of strangers fishing upon the English
coastes without the King’s license, 5th May 1610”—in the
writing of Sir Julius Cæsar.

295 “Niet door sollicitatiën van eenige courtisanen ofte


hovelingen.”

296 The Lords of the Council to Winwood, Memorials, iii. 166.

297 State Papers, Dom., xlviii. 92.

298 Sir Walter Cope to the king, State Papers, Dom., lxxi. 89.
See note, p. 128.

299 The Maintenance of Free Trade, 42 (1622). He mentions


the reasons given by the powerful companies for their
action, but it was caused by their fears for their
monopolies.

300 State Papers, Dom., lxxvii. 79. The Earl of Northampton to


Sir Thomas Lake, 4th July 1613. Ibid., lxxiv. 23. The
queen, who was fond of the banquet and the masque,
was often in financial straits. Chamberlain wrote to
Winwood in 1609 that she had been melancholy about her
jointure, and that £3000 a-year had been added to it out
of the customs, with a gift of £20,000 to pay her debts.
Memorials, iii. 117.

301 Gentleman, Englands Way to Win Wealth, &c.; E. S.,


Britaines Buss; The Trades Increase.
302 In 1609 Sir Nicholas Hales told the king that he had been
informed “the Hollanders were petitioners to the Queen to
grant them a term of years in the seas for the fishing of
herring, cod, and ling.” State Papers, Dom., xlv. 23.

303 Wotton to Sec. Winwood, Hague, 20th March 1614.

304 Archbishop Abbot and Lord Chancellor Ellesmere to


Thomas Wilson, 24th August 1614. State Papers, Dom.,
lxxvii. 80. It is endorsed, “The letter to me, 24th Aug.
1614, sending for me from Harford and for the
transcribing an abstract of all things out of my papers
which might concern his Majesty’s jurisdiction on the sea,
which I did and delivered it to Mr Attorney-General, Sir
Francis Bacon, by the commandment of the Lord
Chancellor and the Archbishop of Canterbury.”

305 Caron to States-General, 27 Aug./6 Sept. 1614. Brit. Mus.


Add. MSS., 17, 677, H.

306 Muller, op. cit., 91, 92.

307 26th September 1614.

308 Records of the Convention of the Royal Burghs of


Scotland, ii. 455. Anstruther Easter, one of the Fife
villages, asked that the costs (£400 Scots) should be
reimbursed to them for obtaining the decree against
Mason “for exacting of thame certane excyse hering and
fishes at the fishing in Orknay and Zetland.”

309 State Papers and Correspondence of Thomas, Earl of


Melros, i. 130.

310 Reg. Privy Council Scot., x. 231. Rec. Convent. Roy. Burghs
Scot., ii. 540.
311 The Lords of the Council to the king, 17th May 1614.
Melrose Papers, i. 130. “It wes fundin,” wrote the Lords,
“by vniforme voices and consent, without ony kynd of
contradictioun, that the assise dewytie aucht onlie to be
payit for the hering brought freshe and greene to land,
and that the hering whilkis ar maid, saltit, and barrellit
vpoun the sea, and maid reddye for the transporte, hes
nevir bene in vse to pay ony dewytie.”

312 Loc. cit. The “patent” was the treaty of 1594. See p. 81. It
may be mentioned that Mason, in his petition to Charles I.
(see p. 153 note), stated that in 1611 he collected “some
part” of the assize-herrings, but that upon the marriage of
the Princess Elizabeth (February 1613) “the States
ambassador made suit to the king for the remission of the
said assize-herrings due by their nation, which was
granted.” We have discovered no other evidence of this.
Loose statements were often made on the subject by
English writers and certain foreign authors, as Rapin (Hist,
d’Anglet., vii. 58), and Wagenaar (Vaderl. Hist., ix. 318)
following him, that the Dutch agreed to pay an annual
sum for liberty to fish on the British coasts. The error was
elaborated by others, as by Lediard in his great work
(Naval History of England, i. 420), who says: “In the year
1608 (sic) King James published a proclamation
prohibiting all foreign nations to fish on the coast of Great
Britain. This prohibition, though general, was designed
against the Dutch; and it occasioned the Treaty the year
following whereby they engaged to pay an annual sum for
leave to fish—an evident acknowledgment of the English
Dominion of the Seas.”
313 Rec. Conv. Roy. Burghs Scot., ii. 323, 350, 354, 374.

314 Winwood to Carleton, 14/24 September 1616. Letters from


and to Sir Dudley Carleton, Knt., during his Embassy in
Holland; from January 1615/6 to December 1620, p. 52.

315 Caron to the States-General, 25 Aug./4 Sept. 1616. Brit.


Mus. Add. MSS., 17,677, J, fol. 152. In an account of the
oppressions of Lord Robert Stewart in the Orkneys and
Shetlands in the sixteenth century, it is stated that that
nobleman laid heavy tolls upon the Dutch fishermen and
the Norwegian traders. In 1575 the inhabitants
complained that he compelled “the dogger boats and
other fishers of this realm to pay to him great toll and
taxis bye auld use and wont, to wit, ilk boat ane angel
noble, ane hundreth fish, and twa bolls salt” (Oppressions
of the Sixteenth Century in the Islands of Orkney and
Zetland, xlviii. 4). It appears from a complaint of
merchants of Bremen, in 1614, that it had been a custom
“past memory of man” for each ship arriving at the
Orkneys to pay six angels and one dollar for ground-leave
and water-leave (Reg. Privy Counc. Scot., x. 247); and the
Dutch are said to have given to the agent of the Earl of
Orkney a barrel of salt for his “oversight” of each ship,
and to have offered the Earl for each ship “an angell and
ane barrell of birskate (biscuit) bread,” while he demanded
“no less than ane double angell or ane Rose noble at the
least” (MSS. Advoc. Lib., 31. 2. 16).

316 See p. 81. The treaty did not contain any stipulation of the
kind; and, moreover, the Scottish copy was then amissing.

317 Muller, Mare Clausum, 107. Brit. Mus. Add. MSS., 17,677, J,
fol. 153 et seq. Lansdowne MSS., 142, fol. 410. Reg. Privy
Counc. Scot., xi. 605, 608.

318 By the Scots Act, 1 James I., May 1424, regarding the
“custome of horse, nolt, scheepe, had furth of the realm,
and of herring,” it was ordained that the following should
be paid: “of ilk thousand of fresche herring sauld, of the
Sellar one penny, and of ilk last of herring, tane be
Scottis-men barrelled, foure schillinges, of ilk last be
strangeris taken, sexe schillinges.”

319 Caron to the States-General, 25 Aug./4 Sept., 12/22 Sept.,


19/29 Sept. 1616. Brit. Mus. Add. MSS., 17,677, J, fol.
152-166. The statement of Lennox that the tax was a
barrel of herrings or ten shillings agrees with the
statements of the Dutch skippers, who, however, added
twelve cod-fish (“Een tonne harinck van elcke buÿsse oft
een Angelott daervooren met twelff cabillauwen”).

320 Carleton, Letters, 156, 157. Muller, op. cit., 110. Brit. Mus.
Add. MSS., 17,677, J, fol. 213b. Lansdowne MSS., 142, fol.
410. State Papers, Dom. Collection, Charles II., vol. 339.

321 Carleton, Letters, 156. Caron to the States-General, 3/13


Aug. 1617; Carleton to the States-General, 27 Aug./6
Sept. Brit. Mus. Add. MSS., 17,677, J, fol. 210, 213. State
Papers, Dom. Collection, Charles II., vol. 339.

322 Carleton, Letters, 168, 169, 172, 176, 186. Muller, op. cit.,
111.

323 Brit. Mus. Lansdowne MSS., 142, fol. 398, 400. “The State
of the Case between his Majesty and the States of the
United Provinces, touching the remanding to his Majesty
of a Delinquent,” 19th November 1617. In Cæsar’s
handwriting. It describes the circumstances of Brown’s
capture. The counsel whose opinion was obtained were
“W. Byrde (? Sir Wm. Bird, Dean of the Arches), H.
Marten, and Hy. Styward.” “Brown, his Majesty’s subject of
the Kingdom of Scotland, was by authority from that State
sent in a pinnace of the King to the subjects of the United
Provinces, who were then fishing for herrings upon the
coasts of Scotland, to demand a certain acknowledgment
claimed by his Majesty, as due unto him in the right of
that crown;” that “while delivering his errand he was
arrested and carried prisoner to Holland by the Dutch
commander, who pretended he had warrant and
commission from the Lords the States so to do; that his
Majesty (having represented this indignity by his
ambassador there to the Lords the States, the latter
disavowed the act of the captain) requireth the offender
there, to be remanded unto himself here to receive as to
justice shall appertain. The Question—Whether this
offender ought to be sent herein to his Majesty as is
required. Answer—There are good authorities that if a
subject of one State commit a heinous crime within the
territory of another State (though against a private
person), the subject so offending ought to be remitted to
the place where the crime was committed, if it be
required.” There were also opinions to the contrary, but
“two very particular circumstances about this offence
seem necessarily to enforce the remission of the Dutch
captain to his Majesty (1) taken from the person of
Brown, who was a public messenger sent by the State of
Scotland on the affairs of the Prince, and ought to have
been inviolable by the Law of Nations, and therefore a
wrong and abuse done to him was contra jus gentium; (2)
taken from the manner of the wrong done, which was
nomine publico—viz., by a pretended commission from the
Lords the States.”

324 Carleton, Letters, 219-263. Muller, op. cit., 113.


325 Crail, Anstruther, and Pittenweem, in Fife, and
Musselburgh and Fisherrow, on the opposite side of the
Firth of Forth.

326 12th March 1618. Reg. Privy Counc. Scot., xi. 329.

327 Record imperfect.

328 Reg. Privy Counc. Scot., xi. 328, 330.

329 Carleton, Letters, 259.

330 King James to Sir D. Carleton, 4th May 1618. “For the
other part, which is ye ancient custom alleadged by Or
Subjects that they (the Dutch) should not fish within
Kenning of Land, of which they make shew to be ignorant,
and would understand what is meant by it: you may say
that Or Subjects do conceave that Custom to be that no
strangers should fish either within the Creeks of Or Land
or within a Kenning of the Land as Seamen do take a
kenning, and insisting upon this interpretation of Or
Subjects’ meaning, you shall observe curiously their reply,
and what scope and liberty they do limit to themselves in
their fishing, and whether they understand that they may
fish where they list, near or far off, or that they may be
confined to any reasonable bounds, for thereupon will
depend a great part of that resolution which may be taken
hereafter in a matter of so great moment as this is, and
the answer you shall receive you may either advertise by
writing, or bring with you, as you shall find Or service to
require.” State Papers, Dom. Collections, Chas. II., vol.
339. In a later communication to the States-General
Carleton described the land-kenning thus: “Ce qui est une
limite bien entendue par gens de Marine, et appellée en
ces quartiers là The Kenning of the Land, et icy de kennis
vant landt.” Dr P. P. C. Hoek informs me that “het land
verkennen” is even now the technical Dutch expression
when a sailor comes near the coast without knowing at
what point he approaches it.

331 Muller, Mare Clausum, 114.

332 “Ane True Relatione of the Greifs and Wrangs qlks the
Inhabitants of the Isles of Orknay and Schetland and
Others his Maties Subjects Fishars within ye Kingdome of
Scotland sustains be the Hollanders and Hamburghgers
and wha within these few Zears are associat to the
Hollanders in the Fishing within his Maties Seas in
Scotland.” MSS. Advoc., 31. 2. 16. It may be noted that
the custom referred to in the last paragraph was of
Scandinavian origin.

333 The Council to the king, 4th April 1618. Melrose Papers, i.
306, 307.

334 5th June 1618, Groot Placaet-Boeck, inhoudende de


Placaten ende Ordonnantien van de H.M. Heeren Staten
Generael der Vereenighde Nederlanden, &c., i. 707. In
Fraser’s Memorials of the Earls of Haddington (ii. 66) there
is printed the copy which King James sent to Lord Binning.
Sir Thomas Hamilton became Lord Binning in 1613, the
Earl of Melrose in 1619, and the Earl of Haddington in
1627.

335 Answer by the States-General of the United Provinces to


the Propositions of the Ambassador of James VI. relative
to the Herring Fishery on the Coast of Scotland, 5th June
1618. Fraser, Memorials, ii. 65. Resol., St.-Gen., 5th, 6th
June. Muller, op. cit., 115.

336 The king to Lord Binning, 11th June 1618. Fraser,


Memorials, ii. 85. Nothing seemed to be known of this
treaty. James complained that the States were not explicit.
“This pointe” about the treaty, he wrote, “they leave
obscure, seeing they neyther expresse which of our
predecessouris it was, neyther whether he were our
predecessour in Scotlande or Englande.”

337 Carleton to Naunton, 19th August 1618.

338 The king to the Privy Council, 29th August 1618. Reg.
Privy Counc. Scot., xi. 440.

339 P. 131.

340 Hakluyt’s Voyages, i. 246.

341 M’Pherson, Annals of Commerce, ii. 213.

342 Muller, op. cit., 118. In a memorandum drawn up by Sir


John Coke in 1625, the Dutch are said to have first
“intruded” in 1613. State Papers, Dom., Chas. I., dxxii.
136. See also Brit. Mus. Lansdowne MSS., 142, fol. 387 et
seq.

343 Earl of Northampton to King James, August 2, 1612. State


Papers, Dom., lxx. 23.

344 Chamberlain to Carleton, 27th October 1613. Ibid., lxxiv.


89. M’Pherson, Annals, ii. 273.

345 M’Pherson, Annals, ii. 274. Winwood, Memorials, iii. 480.


M’Pherson speaks of fifteen Dutch, French, and Biscay
whalers and four English “interlopers.” Muller (Mare
Clausum, 120), quoting from a contemporary Dutch
account, mentions three Biscayers, three Spaniards, two
French, one Dunkirker, and two Hollanders. Both the
Spanish and French Governments protested against the
action of the English vessels. Digby wrote from Madrid

You might also like